[llvm] r193572 - SLPVectorizer: Use vector type for vectorized memory operations

Arnold Schwaighofer aschwaighofer at apple.com
Mon Oct 28 19:37:43 PDT 2013


No.

As described here: http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-July/064023.html
I think you would need analysis that computes the alignment. We don’t have that yet.

Best,
Arnold

On Oct 28, 2013, at 9:31 PM, Francois Pichet <pichet2000 at gmail.com> wrote:

> hi 
> 
> Does that mean the problem I expressed here is now fixed ?
> 
> http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-July/064010.html
> 
> 
> On Mon, Oct 28, 2013 at 9:33 PM, Arnold Schwaighofer <aschwaighofer at apple.com> wrote:
> Author: arnolds
> Date: Mon Oct 28 20:33:50 2013
> New Revision: 193572
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=193572&view=rev
> Log:
> SLPVectorizer: Use vector type for vectorized memory operations
> 
> No test case, because with the current cost model we don't see a difference.
> An upcoming ARM memory cost model change will expose and test this bug.
> 
> radar://15332579
> 
> 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=193572&r1=193571&r2=193572&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp (original)
> +++ llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp Mon Oct 28 20:33:50 2013
> @@ -1023,14 +1023,14 @@ int BoUpSLP::getEntryCost(TreeEntry *E)
>        // Cost of wide load - cost of scalar loads.
>        int ScalarLdCost = VecTy->getNumElements() *
>        TTI->getMemoryOpCost(Instruction::Load, ScalarTy, 1, 0);
> -      int VecLdCost = TTI->getMemoryOpCost(Instruction::Load, ScalarTy, 1, 0);
> +      int VecLdCost = TTI->getMemoryOpCost(Instruction::Load, VecTy, 1, 0);
>        return VecLdCost - ScalarLdCost;
>      }
>      case Instruction::Store: {
>        // We know that we can merge the stores. Calculate the cost.
>        int ScalarStCost = VecTy->getNumElements() *
>        TTI->getMemoryOpCost(Instruction::Store, ScalarTy, 1, 0);
> -      int VecStCost = TTI->getMemoryOpCost(Instruction::Store, ScalarTy, 1, 0);
> +      int VecStCost = TTI->getMemoryOpCost(Instruction::Store, VecTy, 1, 0);
>        return VecStCost - ScalarStCost;
>      }
>      default:
> 
> 
> _______________________________________________
> 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