Re-enable 102565 with fixes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102602 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Evan Cheng 2010-04-29 06:33:38 +00:00
parent 28edeb765b
commit a36acad67d
2 changed files with 8 additions and 14 deletions

View File

@ -3707,15 +3707,17 @@ SelectionDAGBuilder::EmitFuncArgumentDbgValue(const DbgValueInst &DI,
}
}
if (!Reg)
Reg = FuncInfo.ValueMap[V];
if (!Reg)
return false;
if (!Reg) {
DenseMap<const Value *, unsigned>::iterator VMI = FuncInfo.ValueMap.find(V);
if (VMI == FuncInfo.ValueMap.end())
return false;
Reg = VMI->second;
}
const TargetInstrInfo *TII = DAG.getTarget().getInstrInfo();
MachineInstrBuilder MIB = BuildMI(MF, getCurDebugLoc(),
TII->get(TargetOpcode::DBG_VALUE))
.addReg(Reg).addImm(Offset).addMetadata(Variable);
.addReg(Reg, RegState::Debug).addImm(Offset).addMetadata(Variable);
FuncInfo.ArgDbgValues.push_back(&*MIB);
return true;
}
@ -3896,15 +3898,11 @@ SelectionDAGBuilder::visitIntrinsicCall(const CallInst &I, unsigned Intrinsic) {
} else {
SDValue &N = NodeMap[V];
if (N.getNode()) {
#if 0
if (!EmitFuncArgumentDbgValue(DI, V, Variable, Offset, N)) {
#endif
SDV = DAG.getDbgValue(Variable, N.getNode(),
N.getResNo(), Offset, dl, SDNodeOrder);
DAG.AddDbgValue(SDV, N.getNode(), false);
#if 0
}
#endif
} else {
// We may expand this to cover more cases. One case where we have no
// data available is an unreferenced parameter; we need this fallback.

View File

@ -212,15 +212,12 @@ bool SelectionDAGISel::runOnMachineFunction(MachineFunction &mf) {
SelectAllBasicBlocks(Fn);
FuncInfo->clear();
// If the first basic block in the function has live ins that need to be
// If the first basic block in the function has live ins that need to be
// copied into vregs, emit the copies into the top of the block before
// emitting the code for the block.
MachineBasicBlock *EntryMBB = MF->begin();
RegInfo->EmitLiveInCopies(EntryMBB, TRI, TII);
#if 0
// Insert DBG_VALUE instructions for function arguments to the entry block.
for (unsigned i = 0, e = FuncInfo->ArgDbgValues.size(); i != e; ++i) {
MachineInstr *MI = FuncInfo->ArgDbgValues[e-i-1];
@ -237,7 +234,6 @@ bool SelectionDAGISel::runOnMachineFunction(MachineFunction &mf) {
// Release function-specific state. SDB and CurDAG are already cleared
// at this point.
FuncInfo->clear();
#endif
return true;
}