diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2019-05-06 10:25:11 +0000 |
---|---|---|
committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2019-05-06 10:25:11 +0000 |
commit | 97fbc2abfeceabf05cc339b5079d96f25fa380d7 (patch) | |
tree | 0b3d52729de303e3baa7956585c46d2b3babcc5b /llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp | |
parent | 9fb22b2c8660e75844b50b086227eecc8ee9fb13 (diff) | |
download | bcm5719-llvm-97fbc2abfeceabf05cc339b5079d96f25fa380d7.tar.gz bcm5719-llvm-97fbc2abfeceabf05cc339b5079d96f25fa380d7.zip |
[LoadStoreVectorizer] vectorizeStoreChain - ensure we find a store type.
Properly initialize store type to null then ensure we find a real store type in the chain.
Fixes scan-build null dereference warning and makes the code clearer.
llvm-svn: 360031
Diffstat (limited to 'llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp')
-rw-r--r-- | llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp b/llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp index e0b793f08fd..19daa050d1c 100644 --- a/llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp +++ b/llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp @@ -926,7 +926,7 @@ bool Vectorizer::vectorizeStoreChain( StoreInst *S0 = cast<StoreInst>(Chain[0]); // If the vector has an int element, default to int for the whole store. - Type *StoreTy; + Type *StoreTy = nullptr; for (Instruction *I : Chain) { StoreTy = cast<StoreInst>(I)->getValueOperand()->getType(); if (StoreTy->isIntOrIntVectorTy()) @@ -938,6 +938,7 @@ bool Vectorizer::vectorizeStoreChain( break; } } + assert(StoreTy && "Failed to find store type"); unsigned Sz = DL.getTypeSizeInBits(StoreTy); unsigned AS = S0->getPointerAddressSpace(); |