Bug 150511

Summary: Air needs a late register liveness phase that calls Special::reportUsedRegisters()
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: Filip Pizlo <fpizlo>
Status: RESOLVED FIXED    
Severity: Normal CC: barraclough, benjamin, ggaren, mark.lam, mhahnenb, msaboff, nrotem, oliver, saam, sam
Priority: P2    
Version: WebKit Nightly Build   
Hardware: All   
OS: All   
Bug Depends on:    
Bug Blocks: 150279, 150750    
Attachments:
Description Flags
the patch saam: review+

Filip Pizlo
Reported 2015-10-23 13:03:07 PDT
Otherwise, stackmaps will think that no registers are in use.
Attachments
the patch (12.21 KB, patch)
2015-10-30 19:47 PDT, Filip Pizlo
saam: review+
Filip Pizlo
Comment 1 2015-10-30 19:47:17 PDT
Created attachment 264462 [details] the patch
Saam Barati
Comment 2 2015-10-30 22:37:30 PDT
Comment on attachment 264462 [details] the patch View in context: https://bugs.webkit.org/attachment.cgi?id=264462&action=review LGTM > Source/JavaScriptCore/b3/air/AirGenerate.cpp:79 > + recordUsedRegisters(code); Do we cache the results of the used registers? If not, maybe a better name would be just reportUsedRegisters like the function name? > Source/JavaScriptCore/b3/air/AirRecordUsedRegisters.cpp:67 > + Style: I think we can drop the new lines at the end of the file. > Source/JavaScriptCore/b3/air/AirRecordUsedRegisters.h:35 > +// This allocates StackSlots to places on the stack. It first allocates the pinned ones in index Is this really what this phase does?
Filip Pizlo
Comment 3 2015-10-30 23:39:55 PDT
(In reply to comment #2) > Comment on attachment 264462 [details] > the patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=264462&action=review > > LGTM > > > Source/JavaScriptCore/b3/air/AirGenerate.cpp:79 > > + recordUsedRegisters(code); > > Do we cache the results of the used registers? > If not, maybe a better name would be just reportUsedRegisters like the > function name? Good point. > > > Source/JavaScriptCore/b3/air/AirRecordUsedRegisters.cpp:67 > > + > > Style: I think we can drop the new lines at the end of the file. OK. > > > Source/JavaScriptCore/b3/air/AirRecordUsedRegisters.h:35 > > +// This allocates StackSlots to places on the stack. It first allocates the pinned ones in index > > Is this really what this phase does? Ooops!
Filip Pizlo
Comment 4 2015-10-31 16:02:56 PDT
Note You need to log in before you can comment on or make changes to this bug.