Closed
Bug 689779
Opened 14 years ago
Closed 14 years ago
IonMonkey: Eliminate negative zero checks for a*a
Categories
(Core :: JavaScript Engine, defect)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
People
(Reporter: dvander, Assigned: terrence)
Details
Attachments
(2 files, 2 obsolete files)
364 bytes,
application/javascript
|
Details | |
1.60 KB,
patch
|
Details | Diff | Splinter Review |
In the attached benchmark, we could get a significant speedup from removing the negative zero check on the multiplication. We should be able to do this in MIR by seeing that (a * a) will never be negative.
Assignee | ||
Comment 1•14 years ago
|
||
Speedup is 1.12x, but I need some feedback on the patch's specifics:
1) I think isCongruent is a more specific (and costly) test that we want for this, but I could be quite wrong.
2) Is there a way to implement this check without having to copy the body of MBinaryArithInstruction::foldsTo?
3) Should I add a setter for canBeNegativeZero_?
Assignee | ||
Comment 2•14 years ago
|
||
Shorter patch using congruentTo and calling out to super (requires us to re-acquire lhs/rhs). It seems to be epsilon slower than v1 in the benchmark, but it's well within the error bars.
Attachment #563524 -
Flags: feedback?(dvander)
![]() |
Reporter | |
Comment 3•14 years ago
|
||
Comment on attachment 563524 [details] [diff] [review]
v2
Nice.
Attachment #563524 -
Flags: feedback?(dvander) → review+
![]() |
Reporter | |
Updated•14 years ago
|
Attachment #563502 -
Attachment is obsolete: true
Attachment #563502 -
Flags: feedback?(dvander)
Assignee | ||
Comment 4•14 years ago
|
||
I still don't have commit access, but that's no reason to let this bitrot.
Attachment #563524 -
Attachment is obsolete: true
Attachment #567918 -
Flags: checkin?(dvander)
![]() |
Reporter | |
Updated•14 years ago
|
Attachment #567918 -
Flags: checkin?(dvander)
![]() |
Reporter | |
Comment 5•14 years ago
|
||
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
•