Bug 112836

Summary: JSC should be a quadruple-tier VM
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: 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:    

Description Filip Pizlo 2013-03-20 13:41:02 PDT
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.
Comment 1 Filip Pizlo 2013-03-20 13:48:00 PDT
Branched for this work in http://trac.webkit.org/changeset/146384
Comment 2 Sam Weinig 2013-03-20 14:17:28 PDT
Why not 5 onion.com/bWBRid ?
Comment 3 Filip Pizlo 2013-03-20 14:19:26 PDT
(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.
Comment 4 Filip Pizlo 2013-03-27 14:25:16 PDT
(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: ".
Comment 5 Filip Pizlo 2014-04-29 15:08:36 PDT
Aaaannnnnd we're done.