summaryrefslogtreecommitdiff
path: root/lib/CodeGen/MachineRegisterInfo.cpp
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2011-01-31 21:38:14 +0000
committerDevang Patel <dpatel@apple.com>2011-01-31 21:38:14 +0000
commite9a7ea68653689966417443b8ac2528c1d9d3ccf (patch)
tree34407700e2758bb5353a5ad1a0b2960b9514aafa /lib/CodeGen/MachineRegisterInfo.cpp
parent97f6d5b24136ac19d5f83c1ee9541b05f0eccebd (diff)
downloadllvm-e9a7ea68653689966417443b8ac2528c1d9d3ccf.tar.gz
llvm-e9a7ea68653689966417443b8ac2528c1d9d3ccf.tar.bz2
llvm-e9a7ea68653689966417443b8ac2528c1d9d3ccf.tar.xz
Keep track of incoming argument's location while emitting LiveIns.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124611 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/MachineRegisterInfo.cpp')
-rw-r--r--lib/CodeGen/MachineRegisterInfo.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/CodeGen/MachineRegisterInfo.cpp b/lib/CodeGen/MachineRegisterInfo.cpp
index 7244d5f03a..b3fb33736f 100644
--- a/lib/CodeGen/MachineRegisterInfo.cpp
+++ b/lib/CodeGen/MachineRegisterInfo.cpp
@@ -210,8 +210,15 @@ MachineRegisterInfo::EmitLiveInCopies(MachineBasicBlock *EntryMBB,
LiveIns.erase(LiveIns.begin() + i);
--i; --e;
} else {
+ DebugLoc DL;
+ // If there is a location for this live in then use it.
+ DenseMap<unsigned, DebugLoc>::iterator DLI =
+ LiveInLocs.find(LiveIns[i].second);
+ if (DLI != LiveInLocs.end())
+ DL = DLI->second;
+
// Emit a copy.
- BuildMI(*EntryMBB, EntryMBB->begin(), DebugLoc(),
+ BuildMI(*EntryMBB, EntryMBB->begin(), DL,
TII.get(TargetOpcode::COPY), LiveIns[i].second)
.addReg(LiveIns[i].first);