[llvm-dev] Separate LoopVectorize LLVM pass (original) (raw)
Alex Susu via llvm-dev llvm-dev at lists.llvm.org
Fri Apr 14 13:04:49 PDT 2017
- Previous message: [llvm-dev] Options for timing passes in LLVM?
- Next message: [llvm-dev] Separate LoopVectorize LLVM pass
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hello. I am trying to create my own LoopVectorize.cpp pass as a separate pass from the LLVM trunk, as described in http://llvm.org/docs/CMake.html#embedding-llvm-in-your-project. Did anybody try something like this? I added close to the end of the .cpp file: /* this line seems to be required - it allows to run this pass as an embedded pass by giving opt -my-loop-vectorize */ static RegisterPass Z("my-loop-vectorize", "Write comments in source file.");
Note that I did NOT register my new pass in
llvm/lib/Transforms/IPO/PassManagerBuilder.cpp - the original LoopVectorize module is registered there.
However, when I give:
opt -debug -load NewLoopVectorize.so -my-loop-vectorize test.c
it does not vectorize a loop that was normally vectorized by the original
LoopVectorize module in LLVM. My module gives: <>
So I tried to explicitly run a few more passes before my new LoopVectorize to help it
(I think the most important one is -loop-simplify, which canonicalizes the loop): opt -debug -loop-simplify -mem2reg -lcssa -load NewLoopVectorize.so -my-loop-vectorize test.c However, I do not see any line in the output of opt starting with "LoopSimplify" (when I have success, when I give opt -O3, I get "LoopSimplify: Creating pre-header for.body.preheader; LoopSimplify: Creating dedicated exit block for.end.loopexit" before LoopVectorize) and my LoopVectorize still does not vectorize the loop.
Can anybody help me run explicitly the LoopSimplify pass (before my LoopVectorize pass)?
Thank you. And wish you happy Easter holidays! Alex
- Previous message: [llvm-dev] Options for timing passes in LLVM?
- Next message: [llvm-dev] Separate LoopVectorize LLVM pass
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]