summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorJonas Paulsson <paulsson@linux.vnet.ibm.com>2017-04-24 12:40:28 +0000
committerJonas Paulsson <paulsson@linux.vnet.ibm.com>2017-04-24 12:40:28 +0000
commit1e8648577c6a47fbd136801ec686e30c3819a8d3 (patch)
tree6cbc24ce2409bc4ae6d6118726275e9ceef82a2f /llvm/lib/Target
parent54c736f8336ea4a02c23b56623941191504478fd (diff)
downloadbcm5719-llvm-1e8648577c6a47fbd136801ec686e30c3819a8d3.tar.gz
bcm5719-llvm-1e8648577c6a47fbd136801ec686e30c3819a8d3.zip
[SystemZ] Update kill-flag in splitMove().
EarlierMI needs to clear the kill flag on the first operand in case of a store. Review: Ulrich Weigand llvm-svn: 301177
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r--llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp b/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
index c8ff9558cc8..58c4b14af97 100644
--- a/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
+++ b/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
@@ -104,8 +104,9 @@ void SystemZInstrInfo::splitMove(MachineBasicBlock::iterator MI,
MachineOperand &LowOffsetOp = MI->getOperand(2);
LowOffsetOp.setImm(LowOffsetOp.getImm() + 8);
- // Clear the kill flags for the base and index registers in the first
- // instruction.
+ // Clear the kill flags on the registers in the first instruction.
+ if (EarlierMI->getOperand(0).isReg() && EarlierMI->getOperand(0).isUse())
+ EarlierMI->getOperand(0).setIsKill(false);
EarlierMI->getOperand(1).setIsKill(false);
EarlierMI->getOperand(3).setIsKill(false);
OpenPOWER on IntegriCloud