diff options
Diffstat (limited to 'lib/CodeGen/SelectionDAG')
-rw-r--r-- | lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp | 23 | ||||
-rw-r--r-- | lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | 17 |
2 files changed, 1 insertions, 39 deletions
diff --git a/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp b/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp index bed9c08..77a2c86 100644 --- a/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp +++ b/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp @@ -254,29 +254,6 @@ unsigned FunctionLoweringInfo::CreateRegs(const Type *Ty) { return FirstReg; } -/// setByValArgumentFrameIndex - Record frame index for the byval -/// argument. This overrides previous frame index entry for this argument, -/// if any. -void FunctionLoweringInfo::setByValArgumentFrameIndex(const Argument *A, - int FI) { - assert (A->hasByValAttr() && "Argument does not have byval attribute!"); - ByValArgFrameIndexMap[A] = FI; -} - -/// getByValArgumentFrameIndex - Get frame index for the byval argument. -/// This routine must be used after the argument's frame index is set. -/// If the argument does not have any entry in the map then assertion -/// will be raised. -int FunctionLoweringInfo::getByValArgumentFrameIndex(const Argument *A) { - assert (A->hasByValAttr() && "Argument does not have byval attribute!"); - DenseMap<const Argument *, int>::iterator I = - ByValArgFrameIndexMap.find(A); - assert (I != ByValArgFrameIndexMap.end() && - "Argument does not have assigned frame index!"); - return I->second; - -} - /// AddCatchInfo - Extract the personality and type infos from an eh.selector /// call, and add them to the specified machine basic block. void llvm::AddCatchInfo(const CallInst &I, MachineModuleInfo *MMI, diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp index 0a33021..b70bfea 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp @@ -3917,8 +3917,7 @@ bool SelectionDAGBuilder::EmitFuncArgumentDbgValue(const Value *V, MDNode *Variable, int64_t Offset, const SDValue &N) { - const Argument *Arg = dyn_cast<Argument>(V); - if (!Arg) + if (!isa<Argument>(V)) return false; MachineFunction &MF = DAG.getMachineFunction(); @@ -3932,14 +3931,6 @@ SelectionDAGBuilder::EmitFuncArgumentDbgValue(const Value *V, MDNode *Variable, return false; unsigned Reg = 0; - if (Arg->hasByValAttr()) { - // Byval arguments' frame index is recorded during argument lowering. - // Use this info directly. - const TargetRegisterInfo *TRI = DAG.getTarget().getRegisterInfo(); - Reg = TRI->getFrameRegister(MF); - Offset = FuncInfo.getByValArgumentFrameIndex(Arg); - } - if (N.getNode() && N.getOpcode() == ISD::CopyFromReg) { Reg = cast<RegisterSDNode>(N.getOperand(1))->getReg(); if (Reg && TargetRegisterInfo::isVirtualRegister(Reg)) { @@ -6140,12 +6131,6 @@ void SelectionDAGISel::LowerArguments(const BasicBlock *LLVMBB) { i += NumParts; } - // Note down frame index for byval arguments. - if (I->hasByValAttr() && !ArgValues.empty()) - if (FrameIndexSDNode *FI = - dyn_cast<FrameIndexSDNode>(ArgValues[0].getNode())) - FuncInfo->setByValArgumentFrameIndex(I, FI->getIndex()); - if (!I->use_empty()) { SDValue Res; if (!ArgValues.empty()) |