Closed Bug 981314 Opened 11 years ago Closed 11 years ago

OdinMonkey: Assertion failure: *thenBlock && *elseOrJoinBlock, at jit/AsmJS.cpp

Categories

(Core :: JavaScript Engine: JIT, defect)

x86_64
macOS
defect
Not set
critical

Tracking

()

RESOLVED FIXED
mozilla30

People

(Reporter: gkw, Assigned: bbouvier)

References

Details

(Keywords: assertion, regression, testcase, Whiteboard: [jsbugmon:update])

Attachments

(2 files, 1 obsolete file)

Attached file stack
(function() { "use asm"; function f() { return 0 if (1) 0 } })() asserts js debug shell on m-c changeset 15df39c10a17 with --ion-parallel-compile=off --no-ion at Assertion failure: *thenBlock && *elseOrJoinBlock, at jit/AsmJS.cpp My configure flags are: CC="clang -Qunused-arguments" AR=ar CXX="clang++ -Qunused-arguments" sh ./configure --target=x86_64-apple-darwin12.5.0 --enable-optimize --enable-debug --enable-profiling --enable-gczeal --enable-debug-symbols --enable-methodjit --enable-type-inference --disable-tests --with-ccache --enable-threadsafe <other NSPR options> === Tinderbox Build Bisection Results by autoBisect === The "good" changeset has the timestamp "20140306070306" and the hash "0f87e8f8446c". The "bad" changeset has the timestamp "20140306074607" and the hash "6048059d6ea1". Likely regression window: https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=0f87e8f8446c&tochange=6048059d6ea1 Only bug 919052 is in the regression window - Benjamin, is it a likely regressor?
Flags: needinfo?(benj)
Oops, I think the assertion is overly conservative since dead code will have null blocks. Seems like we can keep the assertions by adding FunctionCompiler::inDeadCode() const { return !curBlock_; } and turning the JS_ASSERTs to JS_ASSERT_IF(!f.inDeadCode(), ...);
Attached patch Patch + test (obsolete) — Splinter Review
Thanks, and nice idea! Also %s/if (!curBlock_)/if (!deadCode()), that makes it clearer in all functions.
Assignee: nobody → benj
Status: NEW → ASSIGNED
Attachment #8388576 - Flags: review?(luke)
Flags: needinfo?(benj)
Attached patch Patch + testSplinter Review
There was actually one more place where we can use inDeadCode().
Attachment #8388576 - Attachment is obsolete: true
Attachment #8388576 - Flags: review?(luke)
Attachment #8388577 - Flags: review?(luke)
Comment on attachment 8388577 [details] [diff] [review] Patch + test Nice!
Attachment #8388577 - Flags: review?(luke) → review+
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Flags: in-testsuite+
Resolution: --- → FIXED
Target Milestone: --- → mozilla30
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: