|Summary:||DFG should not use or preserve Phantoms during transformations|
|Product:||WebKit||Reporter:||Filip Pizlo <fpizlo>|
|Severity:||Normal||CC:||barraclough, benjamin, commit-queue, ggaren, mark.lam, mhahnenb, mmirman, msaboff, nrotem, oliver, sam, sbarati|
|Version:||528+ (Nightly build)|
|Bug Depends on:||143734, 143735, 143843|
Description Filip Pizlo 2015-04-14 15:57:49 PDT
After https://bugs.webkit.org/show_bug.cgi?id=143734 and https://bugs.webkit.org/show_bug.cgi?id=143735 are done, there will be no need to insert Phantoms as part of bytecode parsing or when removing/transforming code. So, the code to insert Phantoms should be removed and Node::convertToPhantom() should just become Node::remove().
Comment 1 Filip Pizlo 2015-04-23 15:07:53 PDT
I've hit a snag: backwards propagation needs to know when values are used by bytecode in strange ways. It currently looks like it might rely on Phantom to tell it that the bits of some value are all observed. Ugh.
Comment 2 Filip Pizlo 2015-04-23 15:20:57 PDT
I think that we need to just embrace the fact that the DFG IR prior to FixupPhase *does* currently accurately represent all bytecode uses. This may be hard to maintain, but it *is* useful. The part that we believe to be unsound is maintaining that same information in DFG IR *after* we have completed FixupPhase and are doing other transformations. If we embrace this, then we would be able to also bring back DCE. This time it would be a pre-FixupPhase DCE.
Comment 7 Filip Pizlo 2015-04-27 12:50:53 PDT
*** Bug 126239 has been marked as a duplicate of this bug. ***
Comment 10 Filip Pizlo 2015-04-27 20:14:12 PDT
Created attachment 251810 [details] trying another rebase I'm beginning to think that maybe it's not my patch's fault that EWS can't apply the patch...
Comment 12 WebKit Commit Bot 2015-04-27 20:31:17 PDT
Comment 13 Geoffrey Garen 2015-04-28 11:20:46 PDT
Comment 14 Filip Pizlo 2015-04-28 12:25:34 PDT