diff options
author | Nate Begeman <natebegeman@mac.com> | 2005-03-26 01:29:23 +0000 |
---|---|---|
committer | Nate Begeman <natebegeman@mac.com> | 2005-03-26 01:29:23 +0000 |
commit | 8e21e71b248365c69c0f666518c378b5819ce6fb (patch) | |
tree | e4f63fe0e5355bd9293a23be8153d669b8ab9a5b /lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp | |
parent | 307e7443b8e2f4ffb126a33355f0568f07da8421 (diff) |
Change interface to LowerCallTo to take a boolean isVarArg argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20842 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp')
-rw-r--r-- | lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp index 48574da388..c4df0cdc27 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp @@ -670,8 +670,11 @@ void SelectionDAGLowering::visitCall(CallInst &I) { Args.push_back(std::make_pair(ArgNode, Arg->getType())); } + const PointerType *PT = cast<PointerType>(I.getCalledValue()->getType()); + const FunctionType *FTy = cast<FunctionType>(PT->getElementType()); + std::pair<SDOperand,SDOperand> Result = - TLI.LowerCallTo(getRoot(), I.getType(), Callee, Args, DAG); + TLI.LowerCallTo(getRoot(), I.getType(), FTy->isVarArg(), Callee, Args, DAG); if (I.getType() != Type::VoidTy) setValue(&I, Result.first); DAG.setRoot(Result.second); @@ -696,7 +699,7 @@ void SelectionDAGLowering::visitMalloc(MallocInst &I) { Args.push_back(std::make_pair(Src, TLI.getTargetData().getIntPtrType())); std::pair<SDOperand,SDOperand> Result = - TLI.LowerCallTo(getRoot(), I.getType(), + TLI.LowerCallTo(getRoot(), I.getType(), false, DAG.getExternalSymbol("malloc", IntPtr), Args, DAG); setValue(&I, Result.first); // Pointers always fit in registers @@ -709,7 +712,7 @@ void SelectionDAGLowering::visitFree(FreeInst &I) { TLI.getTargetData().getIntPtrType())); MVT::ValueType IntPtr = TLI.getPointerTy(); std::pair<SDOperand,SDOperand> Result = - TLI.LowerCallTo(getRoot(), Type::VoidTy, + TLI.LowerCallTo(getRoot(), Type::VoidTy, false, DAG.getExternalSymbol("free", IntPtr), Args, DAG); DAG.setRoot(Result.second); } |