Revert r133285. Causing odd failures on Dragonegg.
authorChad Rosier <mcrosier@apple.com>
Fri, 17 Jun 2011 22:08:25 +0000 (22:08 +0000)
committerChad Rosier <mcrosier@apple.com>
Fri, 17 Jun 2011 22:08:25 +0000 (22:08 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133301 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/InstCombine/InstCombineCasts.cpp

index 48a747d764af38b93748f5d78eff64557d41b77d..601d9b42f31454c4157c0344a75b6342bde41730 100644 (file)
@@ -29,10 +29,6 @@ static Value *DecomposeSimpleLinearExpr(Value *Val, unsigned &Scale,
     return ConstantInt::get(Val->getType(), 0);
   }
   
-  // Insist that the amount-to-allocate not overflow.
-  OverflowingBinaryOperator *OBI = dyn_cast<OverflowingBinaryOperator>(Val);
-  if (OBI && !OBI->hasNoUnsignedWrap()) return 0;
-
   if (BinaryOperator *I = dyn_cast<BinaryOperator>(Val)) {
     if (ConstantInt *RHS = dyn_cast<ConstantInt>(I->getOperand(1))) {
       if (I->getOpcode() == Instruction::Shl) {
@@ -75,6 +71,11 @@ Instruction *InstCombiner::PromoteCastOfAllocation(BitCastInst &CI,
   // This requires TargetData to get the alloca alignment and size information.
   if (!TD) return 0;
 
+  // Insist that the amount-to-allocate not overflow.
+  OverflowingBinaryOperator *OBI =
+    dyn_cast<OverflowingBinaryOperator>(AI.getOperand(0));
+  if (OBI && !(OBI->hasNoSignedWrap() || OBI->hasNoUnsignedWrap())) return 0;
+
   const PointerType *PTy = cast<PointerType>(CI.getType());
   
   BuilderTy AllocaBuilder(*Builder);