[llvm-commits] [llvm] r154673 - /llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp
Duncan Sands
baldrick at free.fr
Sat Apr 14 02:34:14 PDT 2012
Hi Hal, thanks for doing this.
> --- llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp (original)
> +++ llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp Fri Apr 13 12:15:33 2012
> @@ -35,6 +35,11 @@
> static cl::opt<bool>
> RunVectorization("vectorize", cl::desc("Run vectorization passes"));
>
> +static cl::opt<bool>
> +UseGVNAfterVectorization("use-gvn-after-vectorization",
> + cl::init(false), cl::Hidden,
> + cl::desc("Run GVN instead of Early CSE after vectorization passes"));
> +
> PassManagerBuilder::PassManagerBuilder() {
> OptLevel = 2;
> SizeLevel = 0;
> @@ -182,8 +187,10 @@
> if (Vectorize) {
> MPM.add(createBBVectorizePass());
> MPM.add(createInstructionCombiningPass());
> - if (OptLevel> 1)
> - MPM.add(createGVNPass()); // Remove redundancies
> + if (OptLevel> 1&& UseGVNAfterVectorization)
> + MPM.add(createGVNPass()); // Remove redundancies
> + else
> + MPM.add(createEarlyCSEPass()); // Catch trivial redundancies
Did you experiment to see if it was better to run EarlyCSE before rather than
after instcombine?
Ciao, Duncan.
More information about the llvm-commits
mailing list