[LLVMdev] loop multiversioning
Nema, Ashutosh
Ashutosh.Nema at amd.com
Sun Jan 18 22:18:22 PST 2015
Hi Trent,
I don't think LLVM has loop multi versioning.
Some passes i.e. loopVectorizer has implemented its own multi versioning followed by memory check.
Recently I also came across similar need in LICM.
Can you please elaborate what multi versioning you are interested in ?
Regards,
Ashutosh
-----Original Message-----
From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Hal Finkel
Sent: Sunday, January 18, 2015 3:33 AM
To: Xin Tong
Cc: llvmdev at cs.uiuc.edu
Subject: Re: [LLVMdev] loop multiversioning
----- 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
_______________________________________________
LLVM Developers mailing list
LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
More information about the llvm-dev
mailing list