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...