search for: aggressivedce

Displaying 8 results from an estimated 8 matches for "aggressivedce".

2008 May 20
4
[LLVMdev] Optimization passes organization and tradeoffs
...;t think it would be very expensive at all. Agreed. >> 2) Does SCCP also eliminate multiplying/dividing by 1 and >> adding/subtracting 0? > > That's probably more the purview of instcombine. Right. >> 4) Is DeadStoreElimination still necessary when we have >> AggressiveDCE? > > Probably, but I'll let others give the definitive answer. They are orthogonal. DSE touches stores, AggressiveDCE does mostly scalars. ADCE basically assumes all stores are live. >> 5) What are the tradeoffs between the different dead code elimination >> variants (wh...
2008 May 20
0
[LLVMdev] Optimization passes organization and tradeoffs
...tcombine. > 3) Is it arbitrary where to place InstructionCombining? Is there a better > order? Typically you'll want to place it after various kinds of propagation are done (for example, SCCP). You can run it multipe times. > 4) Is DeadStoreElimination still necessary when we have AggressiveDCE? Probably, but I'll let others give the definitive answer. > 5) What are the tradeoffs between the different dead code elimination > variants (why not always use the aggressive one)? Others can speak to this. > 6) Is there a better place for CFGSimplification? Should I perform it a...
2008 May 20
4
[LLVMdev] Optimization passes organization and tradeoffs
...// Convert to SSA form passManager->add(createSCCPPass()); // Propagate constants passManager->add(createInstructionCombiningPass()); // Peephole optimization passManager->add(createDeadStoreEliminationPass()); // Dead store elimination passManager->add(createAggressiveDCEPass()); // Aggressive dead code elimination passManager->add(createCFGSimplificationPass()); // Control-flow optimization I have several questions about this: 1) Does ScalarReplAggregates totally superscede PromoteMemoryToRegister? I think I need it to optimize small array...
2008 May 21
0
[LLVMdev] Optimization passes organization and tradeoffs
...;t think it would be very expensive at all. Agreed. >> 2) Does SCCP also eliminate multiplying/dividing by 1 and >> adding/subtracting 0? > > That's probably more the purview of instcombine. Right. >> 4) Is DeadStoreElimination still necessary when we have >> AggressiveDCE? > > Probably, but I'll let others give the definitive answer. They are orthogonal. DSE touches stores, AggressiveDCE does mostly scalars. ADCE basically assumes all stores are live. >> 5) What are the tradeoffs between the different dead code elimination >> variants (wh...
2008 May 21
2
[LLVMdev] Optimization passes organization and tradeoffs
...> Agreed. > >>> 2) Does SCCP also eliminate multiplying/dividing by 1 and >>> adding/subtracting 0? >> >> That's probably more the purview of instcombine. > > Right. > >>> 4) Is DeadStoreElimination still necessary when we have >>> AggressiveDCE? >> >> Probably, but I'll let others give the definitive answer. > > They are orthogonal. DSE touches stores, AggressiveDCE does mostly > scalars. ADCE basically assumes all stores are live. > >>> 5) What are the tradeoffs between the different dead code elimi...
2013 Jul 17
5
[LLVMdev] IR Passes and TargetTransformInfo: Straw Man
...op Opts { LoopSimplify Rotate (when obvious) Full-Unroll (when obvious) } SROA-2 InstCombine GVN Reassociate Generic Loop Opts { LICM (Rotate on-demand) Unswitch } SCCP InstCombine JumpThreading CorrelatedValuePropagation AggressiveDCE } } IR optimizations that require target information or destructively modify the IR can run in a separate pipeline. This helps make a more a clean distinction between passes that may and may not use TargetTransformInfo. TargetTransformInfo encapsultes legal types and operation costs. IR instruc...
2013 Jul 29
0
[LLVMdev] IR Passes and TargetTransformInfo: Straw Man
...ious) > } > SROA-2 > InstCombine > GVN > Reassociate > Generic Loop Opts { > LICM (Rotate on-demand) > Unswitch > } > SCCP > InstCombine > JumpThreading > CorrelatedValuePropagation > AggressiveDCE > } > } > I'm a bit late to this, but the examples of the "generic loop opts" above are really better left until later. They have a potential to obscure the code and make other loop optimizations harder. Specifically, there has to be a place where loop nest optimizati...
2013 Jul 29
3
[LLVMdev] IR Passes and TargetTransformInfo: Straw Man
...gt;> InstCombine >> GVN >> Reassociate >> Generic Loop Opts { >> LICM (Rotate on-demand) >> Unswitch >> } >> SCCP >> InstCombine >> JumpThreading >> CorrelatedValuePropagation >> AggressiveDCE >> } >> } >> > > I'm a bit late to this, but the examples of the "generic loop opts" above are really better left until later. They have a potential to obscure the code and make other loop optimizations harder. Specifically, there has to be a place where l...