mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 11:42:57 +01:00
Re-enable 102565 with fixes.
llvm-svn: 102602
This commit is contained in:
parent
2b713db8ed
commit
ba7dcad569
@ -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.
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user