diff options
Diffstat (limited to 'llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp')
-rw-r--r-- | llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp b/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp index 846a9321..e7cb87a 100644 --- a/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp +++ b/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp @@ -584,8 +584,8 @@ void TailRecursionEliminator::insertAccumulator(Instruction *AccRecInstr) { // call instruction into the newly created temporarily variable. void TailRecursionEliminator::copyByValueOperandIntoLocalTemp(CallInst *CI, int OpndIdx) { - PointerType *ArgTy = cast<PointerType>(CI->getArgOperand(OpndIdx)->getType()); - Type *AggTy = ArgTy->getElementType(); + Type *AggTy = CI->getParamByValType(OpndIdx); + assert(AggTy); const DataLayout &DL = F.getParent()->getDataLayout(); // Get alignment of byVal operand. @@ -611,8 +611,8 @@ void TailRecursionEliminator::copyByValueOperandIntoLocalTemp(CallInst *CI, // into the corresponding function argument location. void TailRecursionEliminator::copyLocalTempOfByValueOperandIntoArguments( CallInst *CI, int OpndIdx) { - PointerType *ArgTy = cast<PointerType>(CI->getArgOperand(OpndIdx)->getType()); - Type *AggTy = ArgTy->getElementType(); + Type *AggTy = CI->getParamByValType(OpndIdx); + assert(AggTy); const DataLayout &DL = F.getParent()->getDataLayout(); // Get alignment of byVal operand. |