Some minor optimizations for isObjectSmallerThan.
authorChris Lattner <sabre@nondot.org>
Mon, 8 Dec 2008 06:28:54 +0000 (06:28 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 8 Dec 2008 06:28:54 +0000 (06:28 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60687 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Analysis/BasicAliasAnalysis.cpp

index 5b65fb1199c38bea1fbb3cbb5c51fdc3cd6c2ca4..1604374adaf8e87a4660ea95714028986282ed35 100644 (file)
@@ -164,19 +164,24 @@ static bool isNonEscapingLocalObject(const Value *V) {
 /// by V is smaller than Size.
 static bool isObjectSmallerThan(const Value *V, unsigned Size,
                                 const TargetData &TD) {
-  const Type *AccessTy = 0;
-  if (const GlobalVariable *GV = dyn_cast<GlobalVariable>(V))
+  const Type *AccessTy;
+  if (const GlobalVariable *GV = dyn_cast<GlobalVariable>(V)) {
     AccessTy = GV->getType()->getElementType();
-  
-  if (const AllocationInst *AI = dyn_cast<AllocationInst>(V))
+  } else if (const AllocationInst *AI = dyn_cast<AllocationInst>(V)) {
     if (!AI->isArrayAllocation())
       AccessTy = AI->getType()->getElementType();
-
-  if (const Argument *A = dyn_cast<Argument>(V))
+    else
+      return false;
+  } else if (const Argument *A = dyn_cast<Argument>(V)) {
     if (A->hasByValAttr())
       AccessTy = cast<PointerType>(A->getType())->getElementType();
+    else
+      return false;
+  } else {
+    return false;
+  }
   
-  if (AccessTy && AccessTy->isSized())
+  if (AccessTy->isSized())
     return TD.getABITypeSize(AccessTy) < Size;
   return false;
 }