[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