[LLVMdev] loop multiversioning

Hal Finkel hfinkel at anl.gov
Sat Jan 17 14:03:03 PST 2015



----- Original Message -----
> From: "Xin Tong" <trent.tong at gmail.com>
> To: llvmdev at cs.uiuc.edu
> Sent: Saturday, January 17, 2015 3:06:13 PM
> Subject: [LLVMdev] loop multiversioning
> 
> 
> Does LLVM have loop multiversioning ? it seems it does not with
> clang++ -O3 -mllvm -debug-pass=Arguments program.c -c
> 

No, we currently don't. In what kind of multiversioning are you interested (memory dependence, partial specialization, etc.)?

 -Hal

> 
> 
> 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
> 
> 
> 
> 
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> 

-- 
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory



More information about the llvm-dev mailing list