summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2012-01-26 17:52:15 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2012-01-26 17:52:15 +0000
commit1a96c914315b0286d84c507d696484e2c95875a4 (patch)
tree58b1f0a6bb6afe302f820c7970a4e6fe1cb5d1b7 /include
parentef4d3ebe2a36ebfd9370e1efbe74dff13f64c40f (diff)
downloadllvm-1a96c914315b0286d84c507d696484e2c95875a4.tar.gz
llvm-1a96c914315b0286d84c507d696484e2c95875a4.tar.bz2
llvm-1a96c914315b0286d84c507d696484e2c95875a4.tar.xz
Clear kill flags before propagating a copy.
The live range of the source register may be extended when a redundant copy is eliminated. Make sure any kill flags between the two copies are cleared. This fixes PR11765. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149069 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/CodeGen/MachineInstr.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/llvm/CodeGen/MachineInstr.h b/include/llvm/CodeGen/MachineInstr.h
index 660d0d02cf..f1d41d4482 100644
--- a/include/llvm/CodeGen/MachineInstr.h
+++ b/include/llvm/CodeGen/MachineInstr.h
@@ -773,6 +773,10 @@ public:
const TargetRegisterInfo *RegInfo,
bool AddIfNotFound = false);
+ /// clearRegisterKills - Clear all kill flags affecting Reg. If RegInfo is
+ /// provided, this includes super-register kills.
+ void clearRegisterKills(unsigned Reg, const TargetRegisterInfo *RegInfo);
+
/// addRegisterDead - We have determined MI defined a register without a use.
/// Look for the operand that defines it and mark it as IsDead. If
/// AddIfNotFound is true, add a implicit operand if it's not found. Returns