[PATCH][instcombine] Remove preservesCFG from instcombine

Mark Heffernan meheff at google.com
Tue Nov 4 14:06:35 PST 2014


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/0942ee76/attachment.html>


More information about the llvm-commits mailing list