|Summary:||FTL should use a simple optimization pipeline by default|
|Product:||WebKit||Reporter:||Filip Pizlo <fpizlo>|
|Severity:||Normal||CC:||barraclough, ggaren, mark.lam, mhahnenberg, msaboff, nrotem, oliver, sam|
|Version:||528+ (Nightly build)|
|Bug Depends on:|
Description Filip Pizlo 2013-11-01 14:58:59 PDT
My experiments show a 20% speed-up on imagine-gaussian-blur
Comment 2 Nadav Rotem 2013-11-01 15:12:02 PDT
270 llvm->AddInstructionCombiningPass(modulePasses); 271 llvm->AddPromoteMemoryToRegisterPass(modulePasses); I imagine that you are running instcombine and constantprop before mem2reg because the code you generate does not have too many allocas. Have you considered running earlyCSE instead of GVN ? Have you considered adding LICM or JumpThreading ?
Comment 3 Geoffrey Garen 2013-11-01 15:13:36 PDT
Comment 4 Nadav Rotem 2013-11-01 16:08:29 PDT
mem2reg should go first, unless we know that FTL generates all of its computations in registers. I know that this is the case for all of the arithmetic calculations but I am not sure about the other stuff.
Comment 5 Filip Pizlo 2013-11-01 19:21:41 PDT
(In reply to comment #4) > mem2reg should go first, unless we know that FTL generates all of its computations in registers. I know that this is the case for all of the arithmetic calculations but I am not sure about the other stuff. Y'all have a point. LowerDFGToLLVM produces very few alloca's so it probably doesn't matter *too* much. I'll changed it.