Summary: | FTL should use stackmap register liveness | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Filip Pizlo <fpizlo> | ||||||||
Component: | JavaScriptCore | Assignee: | Filip Pizlo <fpizlo> | ||||||||
Status: | RESOLVED FIXED | ||||||||||
Severity: | Normal | CC: | atrick, barraclough, ggaren, juergen, mark.lam, mhahnenberg, msaboff, nrotem, oliver, sam | ||||||||
Priority: | P2 | ||||||||||
Version: | 528+ (Nightly build) | ||||||||||
Hardware: | All | ||||||||||
OS: | All | ||||||||||
Bug Depends on: | 130792, 130801, 130821, 130924, 130948 | ||||||||||
Bug Blocks: | 112840, 130885 | ||||||||||
Attachments: |
|
Description
Filip Pizlo
2014-03-26 12:36:05 PDT
The LLVM side of this is untested. We need a runtime mode that clobbers the dead regs. Ideally we could also have a mode to disable inline caches (cause them to fail) to test as many patchpoint liveouts as possible. (In reply to comment #1) > The LLVM side of this is untested. We need a runtime mode that clobbers the dead regs. Ideally we could also have a mode to disable inline caches (cause them to fail) to test as many patchpoint liveouts as possible. That's a great idea and it should be easy to add such a mode. I'll investigate adding it as part of the patch that glues all of this together. Hopefully doing so won't slow the usual test cycle down too much. I wonder if we could also strengthen this by making the C++ code clobber all registers, ideally with a runtime switch, and even better if it doesn't involve too many hard-to-maintain hacks. Regarding LLVM-based clobbering, see http://llvm.org/pr19267. Created attachment 228021 [details]
work in progress
This doesn't work yet.
(In reply to comment #4) > Created an attachment (id=228021) [details] > work in progress > > This doesn't work yet. deltablue is super unhappy, I will investigate why. (In reply to comment #5) > (In reply to comment #4) > > Created an attachment (id=228021) [details] [details] > > work in progress > > > > This doesn't work yet. > > deltablue is super unhappy, I will investigate why. Heh, it's less likely to fail in a debug build. Because of course the C++ code will use fewer registers in debug mode. ;-) Created attachment 228084 [details]
more
Created attachment 229207 [details]
the patch
Comment on attachment 229207 [details]
the patch
r=me
Landed in http://trac.webkit.org/changeset/167187 |