[LLVMdev] loop multiversioning

Xin Tong trent.tong at gmail.com
Sat Jan 17 13:06:13 PST 2015


Does LLVM have loop multiversioning ? it seems it does not with clang++ -O3
-mllvm -debug-pass=Arguments program.c -c

bash-4.1$ clang++ -O3 -mllvm -debug-pass=Arguments  fast_algorithms.c  -c
clang-3.6: warning: treating 'c' input as 'c++' when in C++ mode, this
behavior is deprecated
Pass Arguments:  -datalayout -notti -basictti -x86tti -targetlibinfo -no-aa
-tbaa -scoped-noalias -assumption-tracker -basicaa -verify
-add-discriminators -simplifycfg -domtree -sroa -early-cse -lower-expect
Pass Arguments:  -datalayout -notti -basictti -x86tti -targetlibinfo -no-aa
-tbaa -scoped-noalias -assumption-tracker -basicaa -verify-di -ipsccp
-globalopt -deadargelim -domtree -instcombine -simplifycfg -basiccg
-prune-eh -inline-cost -inline -functionattrs -argpromotion -sroa -domtree
-early-cse -lazy-value-info -jump-threading -correlated-propagation
-simplifycfg -domtree -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 -domtree -instcombine
-lazy-value-info -jump-threading -correlated-propagation -domtree -memdep
-dse -adce -simplifycfg -domtree -instcombine -barrier -domtree -loops
-loop-simplify -lcssa -branch-prob -block-freq -scalar-evolution
-loop-vectorize -instcombine -scalar-evolution -slp-vectorizer -simplifycfg
-domtree -instcombine -loops -loop-simplify -lcssa -scalar-evolution
-function_tti -loop-unroll -alignment-from-assumptions
-strip-dead-prototypes -globaldce -constmerge -domtree -loops
-loop-simplify -lcssa -licm
Pass Arguments:  -datalayout -notti -basictti -x86tti -targetlibinfo
-jump-instr-table-info -targetpassconfig -no-aa -tbaa -scoped-noalias
-assumption-tracker -basicaa -collector-metadata -machinemoduleinfo
-machine-branch-prob -jump-instr-tables -atomic-expand -verify -verify-di
-domtree -loops -loop-simplify -scalar-evolution -iv-users -loop-reduce
-gc-lowering -unreachableblockelim -consthoist -partially-inline-libcalls
-codegenprepare -rewrite-symbols -verify-di -stack-protector -verify
-domtree -loops -branch-prob -machinedomtree -expand-isel-pseudos
-tailduplication -opt-phis -machinedomtree -slotindexes -stack-coloring
-localstackalloc -dead-mi-elimination -machinedomtree -machine-loops
-machine-trace-metrics -early-ifcvt -machinelicm -machine-cse
-machinepostdomtree -machine-block-freq -machine-sink -peephole-opts
-dead-mi-elimination -processimpdefs -unreachable-mbb-elimination -livevars
-machinedomtree -machine-loops -phi-node-elimination -twoaddressinstruction
-slotindexes -liveintervals -simple-register-coalescing -misched
-machine-block-freq -livedebugvars -livestacks -virtregmap -liveregmatrix
-edge-bundles -spill-code-placement -virtregrewriter -stack-slot-coloring
-machinelicm -edge-bundles -prologepilog -machine-block-freq -branch-folder
-tailduplication -machine-cp -postrapseudos -machinedomtree -machine-loops
-post-RA-sched -gc-analysis -machine-block-freq -block-placement2
-stackmap-liveness

Thanks,
Trent
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150117/a5dfc025/attachment.html>


More information about the llvm-dev mailing list