Closed
Bug 969705
Opened 11 years ago
Closed 11 years ago
Differential Testing: Different output message involving right-shift zero
Categories
(Core :: JavaScript Engine: JIT, defect)
Tracking
()
RESOLVED
FIXED
mozilla30
Tracking | Status | |
---|---|---|
firefox30 | --- | fixed |
People
(Reporter: gkw, Assigned: sunfish)
References
Details
(Keywords: regression, testcase)
Attachments
(1 file, 1 obsolete file)
(deleted),
patch
|
Details | Diff | Splinter Review |
+++ This bug was initially created as a clone of Bug #969203 +++
function f(x) {
return -(~x) < (x >>> 0)
}
print(f([]))
print(f(undefined - undefined))
print(f(-0x80000001))
$ ./js-opt-32-dm-ts-er-linux-262e73a6b7cd --fuzzing-safe --ion-parallel-compile=off --ion-eager testcase.js
false
false
true
$ ./js-opt-32-dm-ts-er-linux-262e73a6b7cd --fuzzing-safe --ion-parallel-compile=off testcase.js
false
false
false
Tested on js 32-bit opt threadsafe shell on m-c changeset 262e73a6b7cd on Linux, as well as 64-bit debug threadsafe shell.
My configure flags are:
CC="gcc -m32" AR=ar PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig CXX="g++ -m32" sh ./configure --target=i686-pc-linux --enable-optimize --disable-debug --enable-profiling --enable-gczeal --enable-debug-symbols --enable-methodjit --enable-type-inference --disable-tests --enable-more-deterministic --enable-exact-rooting --with-ccache --enable-threadsafe <other NSPR options>
autoBisect shows this is probably related to the following changeset:
The first bad revision is:
changeset: http://hg.mozilla.org/mozilla-central/rev/9658dbcf4cd7
user: Dan Gohman
date: Mon Dec 09 07:11:12 2013 -0800
summary: Bug 943303 - IonMonkey: Convert floating-point comparisons to integer using range analysis. r=nbp
Dan, is bug 943303 a likely regressor?
Flags: needinfo?(dgohman)
Assignee | ||
Comment 1•11 years ago
|
||
> Dan, is bug 943303 a likely regressor?
Yes.
When range analysis converts a comparison to int32, truncation of the operands doesn't change the result, but it turns out comparisons can also be converted to int32 by speculative type inference, in which case it isn't necessarily safe to truncate the operands. The attached patch adds a flag to MCompare to track whether the operands should be truncated.
Assignee: nobody → dgohman
Attachment #8373525 -
Flags: review?(nicolas.b.pierron)
Flags: needinfo?(dgohman)
Comment 2•11 years ago
|
||
Comment on attachment 8373525 [details] [diff] [review]
truncated-compare.patch
Review of attachment 8373525 [details] [diff] [review]:
-----------------------------------------------------------------
::: js/src/jit/MIR.h
@@ +2256,5 @@
>
> + // When a floating-point comparison is converted to an integer comparison
> + // (when range analysis proves it safe), we need to convert the operands
> + // to integer comparisons as well.
> + bool truncateOperands_;
nit: … we need to convert the operands to integer as well.
Attachment #8373525 -
Flags: review?(nicolas.b.pierron) → review+
Assignee | ||
Comment 3•11 years ago
|
||
Updated patch with bug number and reviewer.
Attachment #8373525 -
Attachment is obsolete: true
Assignee | ||
Updated•11 years ago
|
Keywords: checkin-needed
Comment 4•11 years ago
|
||
Keywords: checkin-needed
Comment 5•11 years ago
|
||
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla30
Reporter | ||
Updated•11 years ago
|
status-firefox30:
--- → affected
Reporter | ||
Updated•11 years ago
|
You need to log in
before you can comment on or make changes to this bug.
Description
•