mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-29 16:04:33 +00:00
Transfer debug location information from PHI nodes to resulting
lowered copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103228 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
cc751bb99c
commit
fb95f89e8e
@ -1082,6 +1082,7 @@ bool FastISel::HandlePHINodesInSuccessorBlocks(const BasicBlock *LLVMBB) {
|
||||
// emitted yet.
|
||||
for (BasicBlock::const_iterator I = SuccBB->begin();
|
||||
const PHINode *PN = dyn_cast<PHINode>(I); ++I) {
|
||||
|
||||
// Ignore dead phi's.
|
||||
if (PN->use_empty()) continue;
|
||||
|
||||
@ -1104,12 +1105,19 @@ bool FastISel::HandlePHINodesInSuccessorBlocks(const BasicBlock *LLVMBB) {
|
||||
|
||||
const Value *PHIOp = PN->getIncomingValueForBlock(LLVMBB);
|
||||
|
||||
// Set the DebugLoc for the copy. Prefer the location of the operand
|
||||
// if there is one; use the location of the PHI otherwise.
|
||||
DL = PN->getDebugLoc();
|
||||
if (const Instruction *Inst = dyn_cast<Instruction>(PHIOp))
|
||||
DL = Inst->getDebugLoc();
|
||||
|
||||
unsigned Reg = getRegForValue(PHIOp);
|
||||
if (Reg == 0) {
|
||||
PHINodesToUpdate.resize(OrigNumPHINodesToUpdate);
|
||||
return false;
|
||||
}
|
||||
PHINodesToUpdate.push_back(std::make_pair(MBBI++, Reg));
|
||||
DL = DebugLoc();
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user