Closed
Bug 636820
Opened 14 years ago
Closed 14 years ago
Test for bug 634590 fails with -a -m
Categories
(Core :: JavaScript Engine, defect)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
Tracking | Status | |
---|---|---|
blocking2.0 | --- | final+ |
People
(Reporter: jandem, Assigned: dmandelin)
References
Details
(Whiteboard: [hardblocker][has patch][fixed-in-tracemonkey])
Attachments
(1 file, 3 obsolete files)
(deleted),
patch
|
dvander
:
review+
|
Details | Diff | Splinter Review |
Just noticed this when testing my jsop_case patch.
jit-test/tests/basic/testBug634590.js:12: Error: Assertion failed: got "outerouterouterouterouterouterouterouterouterouter", expected "innerinnerinnerinnerinnerinnerinnerinnerinnerinner"
Bug 634590 is/was a hardblocker, so asking blocking-2.0.
Comment 1•14 years ago
|
||
Need help from the JM guys.
Andreas, the patch in bug 634590 changed jsinterp but not StubCalls.cpp?
Updated•14 years ago
|
blocking2.0: ? → final+
Whiteboard: [hardblocker]
Comment 3•14 years ago
|
||
I thought we did, but maybe not right.
Assignee | ||
Updated•14 years ago
|
Assignee: general → dmandelin
Assignee | ||
Comment 4•14 years ago
|
||
This fixes the bug. It causes no perf regression on V8, but there is a 3 ms on SunSpider with -m -a and -m -j -p. I'll try to add a fast path for the common case.
Assignee | ||
Comment 5•14 years ago
|
||
This one seems not to regress perf. I'll post a cleaned-up version for review in a bit.
Attachment #515185 -
Attachment is obsolete: true
Assignee | ||
Comment 6•14 years ago
|
||
Attachment #515223 -
Attachment is obsolete: true
Attachment #515254 -
Flags: review?(dvander)
Assignee | ||
Updated•14 years ago
|
Attachment #515254 -
Flags: review?(gal)
Comment 7•14 years ago
|
||
Comment on attachment 515254 [details] [diff] [review]
Patch
Logic seems sound. mjit details dvander has to review.
Attachment #515254 -
Flags: review?(gal) → review+
Comment 8•14 years ago
|
||
Brian noticed this and mentioned it on IRC today -- sorry I didn't report it then.
/be
Updated•14 years ago
|
Whiteboard: [hardblocker] → [hardblocker][has patch]
Comment on attachment 515254 [details] [diff] [review]
Patch
>+ /* If the callee is not an object, jump to the inline fast path. */
>+ MaybeJump isNotObj;
>+ if (!fval->isType(JSVAL_TYPE_OBJECT))
>+ isNotObj = frame.testObject(Assembler::NotEqual, fval);
>+
>+ /*
>+ * If the callee is not a function, jump to OOL slow path.
>+ */
>+ RegisterID objReg = frame.tempRegForData(fval);
If the earlier branch was emitted, then this second tempRegForData call could evict something, causing a register state mismatch at the join point. What we probably want to do is:
> MaybeRegisterID typeReg = frame.maybePinType(fval);
> RegisterID objReg = frame.copyDataIntoReg(fval);
>
> MaybeJump isNotObj;
> if (!fval->isType(JSVAL_TYPE_OBJECT)) {
> isNotObj = frame.testObject(Assembler::NotEqual, fval);
> frame.maybeUnpinType(typeReg);
> }
>
>+ RegisterID parentReg = frame.allocReg();
Same here, this could evict inside a control-flow arm, but with the copyRegToData() call above, we can just clobber objReg.
Attachment #515254 -
Flags: review?(dvander)
Assignee | ||
Comment 10•14 years ago
|
||
Attachment #515254 -
Attachment is obsolete: true
Attachment #515281 -
Flags: review?(dvander)
Updated•14 years ago
|
Attachment #515281 -
Flags: review?(dvander) → review+
Comment 11•14 years ago
|
||
Is this ready to land?
Yes.
Assignee | ||
Comment 13•14 years ago
|
||
Status: NEW → ASSIGNED
Whiteboard: [hardblocker][has patch] → [hardblocker][has patch][fixed-in-tracemonkey]
Assignee | ||
Comment 14•14 years ago
|
||
Backed out due to Unix build failures:
http://hg.mozilla.org/tracemonkey/rev/a7c87d6ee78f
Should be able to sort it out this afternoon.
Assignee | ||
Comment 15•14 years ago
|
||
Comment 16•14 years ago
|
||
The added test testBug634590ma.js fails for me when run with '-m -a':
/home/njn/moz/ws7/js/src/debug32/shell/js -m -a -e "const platform='linux2'; const libdir='/home/njn/moz/ws7/js/src/jit-test/lib/';" -f /home/njn/moz/ws7/js/src/jit-test/lib/prolog.js -f /home/njn/moz/ws7/js/src/jit-test/tests/basic/testBug634590ma.js
/home/njn/moz/ws7/js/src/jit-test/tests/basic/testBug634590ma.js:14: Error: Assertion failed: got "outerouterouterouterouterouterouterouterouterouter", expected "innerinnerinnerinnerinnerinnerinnerinnerinnerinner"
This is preventing me from landing bug 635155.
Blocks: 635155
Comment 17•14 years ago
|
||
(In reply to comment #16)
> The added test testBug634590ma.js fails for me when run with '-m -a':
It's working now. I think I forgot to rebuild after updating. Sorry for the noise.
Comment 18•14 years ago
|
||
(In reply to comment #15)
> Relanded:
>
> http://hg.mozilla.org/tracemonkey/rev/83242d9362cd
Can we get this on m-c for tonight's nightly?
Assignee | ||
Comment 19•14 years ago
|
||
(In reply to comment #18)
> (In reply to comment #15)
> > Relanded:
> >
> > http://hg.mozilla.org/tracemonkey/rev/83242d9362cd
>
> Can we get this on m-c for tonight's nightly?
http://hg.mozilla.org/mozilla-central/rev/ce9aafdae381
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•