Bug 157746

Summary: FixupPhase should be more eager to demote bit math to untyped
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: Filip Pizlo <fpizlo>
Status: RESOLVED FIXED    
Severity: Normal CC: commit-queue, keith_miller, mark.lam, msaboff, saam
Priority: P2    
Version: WebKit Nightly Build   
Hardware: All   
OS: All   
Attachments:
Description Flags
the patch mark.lam: review+

Description Filip Pizlo 2016-05-16 12:20:10 PDT
It shouldn't take a past exit to do it.
Comment 1 Filip Pizlo 2016-05-16 12:28:30 PDT
Created attachment 279034 [details]
the patch
Comment 2 Mark Lam 2016-05-16 12:36:57 PDT
Comment on attachment 279034 [details]
the patch

View in context: https://bugs.webkit.org/attachment.cgi?id=279034&action=review

r=me

> Source/JavaScriptCore/ChangeLog:10
> +        This just makes the logic for how we fixup bit math match the way we do it in other places.
> +        This doesn't affect performance on any major benchmark but it's a big win on new
> +        microbenchmarks added in this change.

Would you mind adding some details for how much gain on the microbenchmarks or aternatively, post the numbers to bugzilla?
Comment 3 Filip Pizlo 2016-05-16 12:38:36 PDT
(In reply to comment #2)
> Comment on attachment 279034 [details]
> the patch
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=279034&action=review
> 
> r=me
> 
> > Source/JavaScriptCore/ChangeLog:10
> > +        This just makes the logic for how we fixup bit math match the way we do it in other places.
> > +        This doesn't affect performance on any major benchmark but it's a big win on new
> > +        microbenchmarks added in this change.
> 
> Would you mind adding some details for how much gain on the microbenchmarks
> or aternatively, post the numbers to bugzilla?

Added:

        object-and                                     11.1610+-0.7602     ^      4.8105+-0.1690        ^ definitely 2.3201x faster
        object-or                                      11.0845+-0.2487     ^      4.7146+-0.0374        ^ definitely 2.3511x faster
        object-xor                                     10.2946+-0.9946     ^      4.7278+-0.0814        ^ definitely 2.1775x faster
        object-lshift                                  10.4896+-1.0867     ^      4.7699+-0.0721        ^ definitely 2.1991x faster
        object-rshift                                  11.1239+-0.5010     ^      4.7194+-0.0445        ^ definitely 2.3570x faster
        object-urshift                                 10.9745+-0.1315     ^      4.7848+-0.0479        ^ definitely 2.2936x faster
Comment 4 Filip Pizlo 2016-05-16 12:40:27 PDT
Landed in http://trac.webkit.org/changeset/200958