diff options
Diffstat (limited to 'llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp')
| -rw-r--r-- | llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp | 8 | 
1 files changed, 4 insertions, 4 deletions
| diff --git a/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp b/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp index b19d2396585..a44a8deda1a 100644 --- a/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp +++ b/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp @@ -165,6 +165,10 @@ isOnlyCopiedFromConstantGlobal(AllocaInst *AI,  }  static Instruction *simplifyAllocaArraySize(InstCombiner &IC, AllocaInst &AI) { +  // Check for array size of 1 (scalar allocation). +  if (!AI.isArrayAllocation()) +    return nullptr; +    // Ensure that the alloca array size argument has type intptr_t, so that    // any casting is exposed early.    Type *IntPtrTy = IC.getDataLayout().getIntPtrType(AI.getType()); @@ -174,10 +178,6 @@ static Instruction *simplifyAllocaArraySize(InstCombiner &IC, AllocaInst &AI) {      return &AI;    } -  // Check C != 1 -  if (!AI.isArrayAllocation()) -    return nullptr; -    // Convert: alloca Ty, C - where C is a constant != 1 into: alloca [C x Ty], 1    if (const ConstantInt *C = dyn_cast<ConstantInt>(AI.getArraySize())) {      Type *NewTy = ArrayType::get(AI.getAllocatedType(), C->getZExtValue()); | 

