Open Bug 810951 Opened 13 years ago Updated 1 year ago

IonMonkey: Use range information for compares

Categories

(Core :: JavaScript Engine, defect)

defect

Tracking

()

People

(Reporter: h4writer, Unassigned)

References

(Blocks 1 open bug)

Details

Attachments

(2 files)

Range information can be used to remove if/else branches
This part adds the meat to do range analysis on compares and also to fold them during lowering
Assignee: general → hv1989
Attachment #680637 - Flags: review?(mrosenberg)
This is actually a very small change. We now also fold to LGoto when EmittedAtUses is false. As I see it, this check don't need to be true for folding. The rest is refactor to make more readable. Note 1: both patches are to improve v8 score. I tried to run benchmarks, but due to fluctuating numbers hard to measure it. But I think v8 indeed has a small increase with these. Note 2: both patches are separate and don't depend on each other.
Attachment #680640 - Flags: review?(jdemooij)
Can you find out which compares we are able to remove in V8/SS/Kraken with these patches? If there are some important expressions we can eliminate now that's awesome, but it's good to have some data on that before we add an optimization :)
+1 to comment #3, it would be good to know the exact effect especially with bug 766592 in flight.
A bit more info can't hurt indeed. I created it originally for #763958, but saw no speedup, although compare is getting removed. Now before patch the tryFold wasn't used during lowering on SS, V8 and Kraken! So for these benchmarks that was dead code. After patch: Kraken: tests/kraken-1.1/stanford-crypto-ccm-data.js:20 tests/kraken-1.1/stanford-crypto-ccm-data.js:21 tests/kraken-1.1/stanford-crypto-pbkdf2-data.js:16 tests/kraken-1.1/stanford-crypto-sha256-iterative-data.js:16 V8: / SS: / Can't really see a difference in speed on kraken on this (or it would be in the noise) on x64. Overhead of cmp + jne in x86/x64 isn't that big, therefore expected?
Attachment #680637 - Flags: review?(mrosenberg)
Attachment #680640 - Flags: review?(jdemooij)
Improvement is not big enough (nothing observed) to justify the added coded.

The bug assignee didn't login in Bugzilla in the last 7 months, so the assignee is being reset.

Assignee: hv1989 → nobody
Severity: normal → S3
Blocks: sm-jits
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: