Bug 112836
Summary: | JSC should be a quadruple-tier VM | ||
---|---|---|---|
Product: | WebKit | Reporter: | Filip Pizlo <fpizlo> |
Component: | JavaScriptCore | Assignee: | Filip Pizlo <fpizlo> |
Status: | RESOLVED FIXED | ||
Severity: | Normal | CC: | abucur, barraclough, galpeter, ggaren, mark.lam, mhahnenberg, msaboff, oliver, ossy, rgabor, sam, syoichi, zherczeg |
Priority: | P2 | ||
Version: | 528+ (Nightly build) | ||
Hardware: | All | ||
OS: | All | ||
Bug Depends on: | 112838, 112839, 112840, 115464, 115465, 115466, 116556, 116557, 116561, 116630, 116633, 116748 | ||
Bug Blocks: |
Filip Pizlo
Our existing DFG optimizing compiler is pretty good, but not as good as it could be. In fact, we've even gone so far as de-tuned it to do fewer optimizations. This is because we care about compile times, and we want the DFG to be able to give profit to even very-short-running functions. Right now it can produce significant speed-ups even for things that only run for ~2ms or less, and even in cases where the relevant functions are relatively complex. But this approach also means that for longer-running code, we get less win.
This can be fixed by having an alternate, more powerful, but longer-compiling, tier of the DFG. This would be the fourth tier of JSC. Here's the wishlist for this tier:
1) Bring back the optimization fixpoint to allow CFG simplification to feed back into things like CSE.
2) Run the compiler on a separate thread.
3) Use a proper compiler backend that does global register allocation, GVN, PRE, LICM, etc.
Attachments | ||
---|---|---|
Add attachment proposed patch, testcase, etc. |
Filip Pizlo
Branched for this work in http://trac.webkit.org/changeset/146384
Sam Weinig
Why not 5 onion.com/bWBRid ?
Filip Pizlo
(In reply to comment #2)
> Why not 5 onion.com/bWBRid ?
Assign that bug to Gavin. He was saying something about doing AST interpretation for really simple code.
Filip Pizlo
(In reply to comment #1)
> Branched for this work in http://trac.webkit.org/changeset/146384
The branch is called "fourthTier". I'm prefixing all bugs that are intended to land on this branch with "fourthTier: ".
Filip Pizlo
Aaaannnnnd we're done.