summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/XCore/XCoreInstrInfo.cpp
diff options
context:
space:
mode:
authorRobert Lytton <robert@xmos.com>2014-07-04 06:38:22 +0000
committerRobert Lytton <robert@xmos.com>2014-07-04 06:38:22 +0000
commit37d3fa7e36b166c5d54dbe9e616f8e2cd004e929 (patch)
tree3cf60f5d4d34abab50a5d3fc016a5c2a7edcaa8b /llvm/lib/Target/XCore/XCoreInstrInfo.cpp
parent859aff501b4273d7cec267ff3b65fcde96267936 (diff)
downloadbcm5719-llvm-37d3fa7e36b166c5d54dbe9e616f8e2cd004e929.tar.gz
bcm5719-llvm-37d3fa7e36b166c5d54dbe9e616f8e2cd004e929.zip
XCore target: remove incorrect DebugLoc entries from prologue
Summary: This was causing the prologue_end to be incorrectly positioned. Differential Revision: http://reviews.llvm.org/D4122 llvm-svn: 212318
Diffstat (limited to 'llvm/lib/Target/XCore/XCoreInstrInfo.cpp')
-rw-r--r--llvm/lib/Target/XCore/XCoreInstrInfo.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/llvm/lib/Target/XCore/XCoreInstrInfo.cpp b/llvm/lib/Target/XCore/XCoreInstrInfo.cpp
index 984f0cd9c4d..36ea9a087da 100644
--- a/llvm/lib/Target/XCore/XCoreInstrInfo.cpp
+++ b/llvm/lib/Target/XCore/XCoreInstrInfo.cpp
@@ -373,7 +373,8 @@ void XCoreInstrInfo::storeRegToStackSlot(MachineBasicBlock &MBB,
const TargetRegisterInfo *TRI) const
{
DebugLoc DL;
- if (I != MBB.end()) DL = I->getDebugLoc();
+ if (I != MBB.end() && !I->isDebugValue())
+ DL = I->getDebugLoc();
MachineFunction *MF = MBB.getParent();
const MachineFrameInfo &MFI = *MF->getFrameInfo();
MachineMemOperand *MMO =
@@ -395,7 +396,8 @@ void XCoreInstrInfo::loadRegFromStackSlot(MachineBasicBlock &MBB,
const TargetRegisterInfo *TRI) const
{
DebugLoc DL;
- if (I != MBB.end()) DL = I->getDebugLoc();
+ if (I != MBB.end() && !I->isDebugValue())
+ DL = I->getDebugLoc();
MachineFunction *MF = MBB.getParent();
const MachineFrameInfo &MFI = *MF->getFrameInfo();
MachineMemOperand *MMO =
@@ -440,7 +442,8 @@ MachineBasicBlock::iterator XCoreInstrInfo::loadImmediate(
MachineBasicBlock::iterator MI,
unsigned Reg, uint64_t Value) const {
DebugLoc dl;
- if (MI != MBB.end()) dl = MI->getDebugLoc();
+ if (MI != MBB.end() && !MI->isDebugValue())
+ dl = MI->getDebugLoc();
if (isImmMskBitp(Value)) {
int N = Log2_32(Value) + 1;
return BuildMI(MBB, MI, dl, get(XCore::MKMSK_rus), Reg).addImm(N);
OpenPOWER on IntegriCloud