[llvm] r185040 - SLP: Dont erase instructions during vectorization because it prevents the outerloops from iterating over the instructions.
Eric Christopher
echristo at gmail.com
Wed Jun 26 16:47:51 PDT 2013
On Wed, Jun 26, 2013 at 4:43 PM, Nadav Rotem <nrotem at apple.com> wrote:
> Author: nadav
> Date: Wed Jun 26 18:43:23 2013
> New Revision: 185040
>
> URL: http://llvm.org/viewvc/llvm-project?rev=185040&view=rev
> Log:
> SLP: Dont erase instructions during vectorization because it prevents the outerloops from iterating over the instructions.
>
Iterator invalidation or something else? Do you have something
deleting these or do we just have dead code after the vectorizer?
-eric
> Modified:
> llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp
>
> Modified: llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp?rev=185040&r1=185039&r2=185040&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp (original)
> +++ llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp Wed Jun 26 18:43:23 2013
> @@ -1258,8 +1258,6 @@ Value *FuncSLP::vectorizeArith(ArrayRef<
> for (unsigned i = 0, e = Operands.size(); i != e; ++i) {
> Value *S = Builder.CreateExtractElement(Vec, Builder.getInt32(i));
> Operands[i]->replaceAllUsesWith(S);
> - Instruction *I = cast<Instruction>(Operands[i]);
> - I->eraseFromParent();
> }
>
> return Vec;
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list