[llvm] 0a00d64 - [LAA] Turn aggregate type check into assertion (NFCI).

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 23 09:37:59 PST 2021


Author: Florian Hahn
Date: 2021-11-23T17:37:30Z
New Revision: 0a00d64e322f28f5f65f5b2d507d12757883478a

URL: https://github.com/llvm/llvm-project/commit/0a00d64e322f28f5f65f5b2d507d12757883478a
DIFF: https://github.com/llvm/llvm-project/commit/0a00d64e322f28f5f65f5b2d507d12757883478a.diff

LOG: [LAA] Turn aggregate type check into assertion (NFCI).

getPtrStride should not be called with aggregate access types. There's
also an old TODO.

Turn the check into an assertion.

Added: 
    

Modified: 
    llvm/lib/Analysis/LoopAccessAnalysis.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Analysis/LoopAccessAnalysis.cpp b/llvm/lib/Analysis/LoopAccessAnalysis.cpp
index f9bd7167317f..66826e22f8e3 100644
--- a/llvm/lib/Analysis/LoopAccessAnalysis.cpp
+++ b/llvm/lib/Analysis/LoopAccessAnalysis.cpp
@@ -1032,15 +1032,7 @@ int64_t llvm::getPtrStride(PredicatedScalarEvolution &PSE, Type *AccessTy,
                            bool ShouldCheckWrap) {
   Type *Ty = Ptr->getType();
   assert(Ty->isPointerTy() && "Unexpected non-ptr");
-  unsigned AddrSpace = Ty->getPointerAddressSpace();
-
-  // Make sure we're not accessing an aggregate type.
-  // TODO: Why? This doesn't make any sense.
-  if (AccessTy->isAggregateType()) {
-    LLVM_DEBUG(dbgs() << "LAA: Bad stride - Not a pointer to a scalar type"
-                      << *Ptr << "\n");
-    return 0;
-  }
+  assert(!AccessTy->isAggregateType() && "Bad stride - Not a pointer to a scalar type");
 
   const SCEV *PtrScev = replaceSymbolicStrideSCEV(PSE, StridesMap, Ptr);
 
@@ -1068,6 +1060,7 @@ int64_t llvm::getPtrStride(PredicatedScalarEvolution &PSE, Type *AccessTy,
   // An getelementptr without an inbounds attribute and unit stride would have
   // to access the pointer value "0" which is undefined behavior in address
   // space 0, therefore we can also vectorize this case.
+  unsigned AddrSpace = Ty->getPointerAddressSpace();
   bool IsInBoundsGEP = isInBoundsGep(Ptr);
   bool IsNoWrapAddRec = !ShouldCheckWrap ||
     PSE.hasNoOverflow(Ptr, SCEVWrapPredicate::IncrementNUSW) ||


        


More information about the llvm-commits mailing list