Bug 169515 - Air should be powerful enough to support Tmp-splitting
Summary: Air should be powerful enough to support Tmp-splitting
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: WebKit Nightly Build
Hardware: All All
: P2 Normal
Assignee: Filip Pizlo
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-03-11 19:19 PST by Filip Pizlo
Modified: 2017-03-14 18:10 PDT (History)
0 users

See Also:


Attachments
the patch (25.17 KB, patch)
2017-03-11 19:26 PST, Filip Pizlo
sbarati: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Filip Pizlo 2017-03-11 19:19:16 PST
I implemented a live range splitting phase that splits Tmps that are live only for cold uses. It's a performance regression, because it turns out that IRC isn't sufficiently graceful at coalescing to handle being overloaded with even more temporaries. The performance losses all came from programs that would get slightly worse register allocation when both the versions of the Tmp got spilled. Perhaps one day we could solve that with spill coalescing. But this patch didn't speed *anything* up, which casts a lot of doubt about the profitability of this approach.

But in the process of writing the phase, I added some utilities to Air. I want to land those utilities.
Comment 1 Filip Pizlo 2017-03-11 19:26:09 PST
Created attachment 304181 [details]
the patch

I want to at least upload this useful code.
Comment 2 Saam Barati 2017-03-14 18:10:43 PDT
Comment on attachment 304181 [details]
the patch

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

r=me

> Source/JavaScriptCore/b3/air/AirBreakCriticalEdges.h:34
> +void breakCriticalEdges(Code&);

nice