OSDN Git Service

BB-Vectorizer: Check the cost of the store pointer type
authorNadav Rotem <nrotem@apple.com>
Fri, 21 Dec 2012 01:24:36 +0000 (01:24 +0000)
committerNadav Rotem <nrotem@apple.com>
Fri, 21 Dec 2012 01:24:36 +0000 (01:24 +0000)
and not the return type, which is void. A number of test
cases fail after adding the assertion in TTImpl.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170828 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/TargetTransformImpl.cpp
lib/Transforms/Vectorize/BBVectorize.cpp

index 7f9fdfc..4320437 100644 (file)
@@ -340,6 +340,7 @@ unsigned
 VectorTargetTransformImpl::getMemoryOpCost(unsigned Opcode, Type *Src,
                                            unsigned Alignment,
                                            unsigned AddressSpace) const {
+  assert(!Src->isVoidTy() && "Invalid type");
   std::pair<unsigned, MVT> LT = getTypeLegalizationCost(Src);
 
   // Assume that all loads of legal types cost 1.
index a482291..ee3202a 100644 (file)
@@ -968,9 +968,9 @@ namespace {
         }
 
         if (VTTI) {
-          unsigned ICost = VTTI->getMemoryOpCost(I->getOpcode(), I->getType(),
+          unsigned ICost = VTTI->getMemoryOpCost(I->getOpcode(), aTypeI,
                                                  IAlignment, IAddressSpace);
-          unsigned JCost = VTTI->getMemoryOpCost(J->getOpcode(), J->getType(),
+          unsigned JCost = VTTI->getMemoryOpCost(J->getOpcode(), aTypeJ,
                                                  JAlignment, JAddressSpace);
           unsigned VCost = VTTI->getMemoryOpCost(I->getOpcode(), VType,
                                                  BottomAlignment,