Bug 169515

Summary: Air should be powerful enough to support Tmp-splitting
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: Filip Pizlo <fpizlo>
Status: NEW    
Severity: Normal    
Priority: P2    
Version: WebKit Nightly Build   
Hardware: All   
OS: All   
Attachments:
Description Flags
the patch saam: review+

Filip Pizlo
Reported 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.
Attachments
the patch (25.17 KB, patch)
2017-03-11 19:26 PST, Filip Pizlo
saam: review+
Filip Pizlo
Comment 1 2017-03-11 19:26:09 PST
Created attachment 304181 [details] the patch I want to at least upload this useful code.
Saam Barati
Comment 2 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
Note You need to log in before you can comment on or make changes to this bug.