Bug 127245

Summary: Enable LLVM TailDup
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: Filip Pizlo <fpizlo>
Status: RESOLVED DUPLICATE    
Severity: Normal CC: atrick, barraclough, ggaren, mark.lam, mhahnenberg, mmirman, msaboff, nrotem, oliver, sam
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Bug Depends on:    
Bug Blocks: 132356    
Attachments:
Description Flags
jsc patch
ggaren: review+
llvm patch none

Filip Pizlo
Reported 2014-01-18 20:17:58 PST
Patch forthcoming.
Attachments
jsc patch (2.17 KB, patch)
2014-01-18 20:20 PST, Filip Pizlo
ggaren: review+
llvm patch (32.05 KB, patch)
2014-01-18 20:21 PST, Filip Pizlo
no flags
Filip Pizlo
Comment 1 2014-01-18 20:20:08 PST
Created attachment 221578 [details] jsc patch
Filip Pizlo
Comment 2 2014-01-18 20:21:15 PST
Created attachment 221579 [details] llvm patch This just reverts LLVM r138841, and then updates the code a bit to various internal API changes.
Geoffrey Garen
Comment 3 2014-01-18 22:33:14 PST
Comment on attachment 221578 [details] jsc patch r=me
Geoffrey Garen
Comment 4 2014-01-18 22:35:07 PST
Comment on attachment 221579 [details] llvm patch Seems like it would be best to get this into LLVM trunk first.
Filip Pizlo
Comment 5 2014-01-18 22:39:16 PST
(In reply to comment #4) > (From update of attachment 221579 [details]) > Seems like it would be best to get this into LLVM trunk first. Yeah - that's definitely a blocker. At the time that they removed TailDup there seemed to be multiple good justifications for doing so: - It de-SSAifies the IR in a weird non-canonical way. - It has demonstrably bad heuristics for important things like switch. - It was unused in LLVM. So it may be a challenge to get it pushed back in. I suspect that this optimization is only good for JS because JS is so weird.
Filip Pizlo
Comment 6 2016-02-15 16:27:41 PST
We wrote our own compiler, and it has taildup. *** This bug has been marked as a duplicate of bug 150279 ***
Note You need to log in before you can comment on or make changes to this bug.