Closed
Bug 657890
Opened 13 years ago
Closed 13 years ago
TI+JM: Assertion failure: !types->unknown(), at Compiler.cpp:7163
Categories
(Core :: JavaScript Engine, defect)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
People
(Reporter: jandem, Unassigned)
References
Details
-- function f() {}; var x; for(var i=0; i<200; i++) { x = f.bind(x, x, 2); gc(); } -- $ ./js -n -m test.js Assertion failure: !types->unknown(), at Compiler.cpp:7163 With -n -a -m it throws: test.js:4: InternalError: too much recursion Revision 5d1cbc94bc42, 32-bit OS X.
Comment 1•13 years ago
|
||
The assert was because we were testing the pushed type set rather than the type set which barriers are assigned for (if the bytecode types are unknown there shouldn't be any barriers). These are identical except when we hit a threshold which marks type sets as unknown once objects have been propagated to too many places. The recursion error is stickier. The basic problem is due to the interpoline, that we can repeatedly enter the method JIT on the same stack frame, by compiling, throwing away the code and reentering the interpreter, reentering the method JIT at a backedge, and so on. This patch just puts a threshold on such recursion, but we should have a better solution (need to think some more about the best approach to take here). http://hg.mozilla.org/projects/jaegermonkey/rev/bcd868ff18d4
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•