[PATCH][instcombine] Remove preservesCFG from instcombine
Chandler Carruth
chandlerc at google.com
Tue Nov 4 14:51:38 PST 2014
LGTM! This looks like the perfect minimal fix. Thanks for tracking this
down, I think this has actually been a root cause of a few things I've
tried (and failed) to debug as well.
On Tue, Nov 4, 2014 at 4:06 PM, Mark Heffernan <meheff at google.com> wrote:
> On Tue, Nov 4, 2014 at 12:46 PM, Chandler Carruth <chandlerc at google.com>
> wrote:
>
>> Can you show the same diff to the pass structure for the latter change?
>>
>
> Here you go (for -O2). The only difference is an additional loopsimplify
> pass. The baseline here is the state before my earlier patch, so this diff
> only represents changing LoopSimplify to !isCfgOnly.
>
> --- passes.before.txt 2014-11-04 13:59:22.933766046 -0800
> +++ passes.after.txt 2014-11-04 13:53:04.199887020 -0800
> @@ -1,122 +1,123 @@
> Pass Arguments: -datalayout -notti -basictti -x86tti -no-aa -tbaa
> -scoped-noalias -assumption-tracker -targetlibinfo -basicaa -verify
> -simplifycfg -domtree -sroa -early-cse -lower-expect
> Data Layout
> No target information
> Target independent code generator's TTI
> X86 Target Transform Info
> No Alias Analysis (always returns 'may' alias)
> Type-Based Alias Analysis
> Scoped NoAlias Alias Analysis
> Assumption Tracker
> Target Library Information
> Basic Alias Analysis (stateless AA impl)
> FunctionPass Manager
> Module Verifier
> Simplify the CFG
> Dominator Tree Construction
> SROA
> Early CSE
> Lower 'expect' Intrinsics
> -Pass Arguments: -targetlibinfo -datalayout -notti -basictti -x86tti
> -no-aa -tbaa -scoped-noalias -assumption-tracker -basicaa -verify-di
> -ipsccp -globalopt -deadargelim -instcombine -simplifycfg -basiccg
> -prune-eh -inline-cost -inline -functionattrs -sroa -domtree -early-cse
> -lazy-value-info -jump-threading -correlated-propagation -simplifycfg
> -instcombine -tailcallelim -simplifycfg -reassociate -domtree -loops
> -loop-simplify -lcssa -loop-rotate -licm -loop-unswitch -instcombine
> -scalar-evolution -lcssa -indvars -loop-idiom -loop-deletion -function_tti
> -loop-unroll -memdep -mldst-motion -domtree -memdep -gvn -memdep -memcpyopt
> -sccp -instcombine -lazy-value-info -jump-threading -correlated-propagation
> -domtree -memdep -dse -adce -simplifycfg -instcombine -barrier -domtree
> -loops -loop-simplify -lcssa -branch-prob -block-freq -scalar-evolution
> -loop-vectorize -instcombine -scalar-evolution -slp-vectorizer -simplifycfg
> -instcombine -domtree -loops -loop-simplify -lcssa -scalar-evolution
> -function_tti -loop-unroll -alignment-from-assumptions
> -strip-dead-prototypes -globaldce -constmerge -verify -verify-di
> +Pass Arguments: -targetlibinfo -datalayout -notti -basictti -x86tti
> -no-aa -tbaa -scoped-noalias -assumption-tracker -basicaa -verify-di
> -ipsccp -globalopt -deadargelim -instcombine -simplifycfg -basiccg
> -prune-eh -inline-cost -inline -functionattrs -sroa -domtree -early-cse
> -lazy-value-info -jump-threading -correlated-propagation -simplifycfg
> -instcombine -tailcallelim -simplifycfg -reassociate -domtree -loops
> -loop-simplify -lcssa -loop-rotate -licm -loop-unswitch -instcombine
> -scalar-evolution -loop-simplify -lcssa -indvars -loop-idiom -loop-deletion
> -function_tti -loop-unroll -memdep -mldst-motion -domtree -memdep -gvn
> -memdep -memcpyopt -sccp -instcombine -lazy-value-info -jump-threading
> -correlated-propagation -domtree -memdep -dse -adce -simplifycfg
> -instcombine -barrier -domtree -loops -loop-simplify -lcssa -branch-prob
> -block-freq -scalar-evolution -loop-vectorize -instcombine
> -scalar-evolution -slp-vectorizer -simplifycfg -instcombine -domtree -loops
> -loop-simplify -lcssa -scalar-evolution -function_tti -loop-unroll
> -alignment-from-assumptions -strip-dead-prototypes -globaldce -constmerge
> -verify -verify-di
> Target Library Information
> Data Layout
> No target information
> Target independent code generator's TTI
> X86 Target Transform Info
> No Alias Analysis (always returns 'may' alias)
> Type-Based Alias Analysis
> Scoped NoAlias Alias Analysis
> Assumption Tracker
> Basic Alias Analysis (stateless AA impl)
> ModulePass Manager
> Debug Info Verifier
> Interprocedural Sparse Conditional Constant Propagation
> Global Variable Optimizer
> Dead Argument Elimination
> FunctionPass Manager
> Combine redundant instructions
> Simplify the CFG
> CallGraph Construction
> Call Graph SCC Pass Manager
> Remove unused exception handling info
> Inline Cost Analysis
> Function Integration/Inlining
> Deduce function attributes
> FunctionPass Manager
> SROA
> Dominator Tree Construction
> Early CSE
> Lazy Value Information Analysis
> Jump Threading
> Value Propagation
> Simplify the CFG
> Combine redundant instructions
> Tail Call Elimination
> Simplify the CFG
> Reassociate expressions
> Dominator Tree Construction
> Natural Loop Information
> Canonicalize natural loops
> Loop-Closed SSA Form Pass
> Loop Pass Manager
> Rotate Loops
> Loop Invariant Code Motion
> Unswitch loops
> Combine redundant instructions
> Scalar Evolution Analysis
> + Canonicalize natural loops
> Loop-Closed SSA Form Pass
> Loop Pass Manager
> Induction Variable Simplification
> Recognize loop idioms
> Delete dead loops
> Function TargetTransformInfo
> Loop Pass Manager
> Unroll loops
> Memory Dependence Analysis
> MergedLoadStoreMotion
> Dominator Tree Construction
> Memory Dependence Analysis
> Global Value Numbering
> Memory Dependence Analysis
> MemCpy Optimization
> Sparse Conditional Constant Propagation
> Combine redundant instructions
> Lazy Value Information Analysis
> Jump Threading
> Value Propagation
> Dominator Tree Construction
> Memory Dependence Analysis
> Dead Store Elimination
> Aggressive Dead Code Elimination
> Simplify the CFG
> Combine redundant instructions
> A No-Op Barrier Pass
> FunctionPass Manager
> Dominator Tree Construction
> Natural Loop Information
> Canonicalize natural loops
> Loop-Closed SSA Form Pass
> Branch Probability Analysis
> Block Frequency Analysis
> Scalar Evolution Analysis
> Loop Vectorization
> Combine redundant instructions
> Scalar Evolution Analysis
> SLP Vectorizer
> Simplify the CFG
> Combine redundant instructions
> Dominator Tree Construction
> Natural Loop Information
> Canonicalize natural loops
> Loop-Closed SSA Form Pass
> Scalar Evolution Analysis
> Function TargetTransformInfo
> Loop Pass Manager
> Unroll loops
> Alignment from assumptions
> Strip Unused Function Prototypes
> Dead Global Elimination
> Merge Duplicate Global Constants
> FunctionPass Manager
> Module Verifier
> Debug Info Verifier
> Bitcode Writer
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141104/9fbc7407/attachment.html>
More information about the llvm-commits
mailing list