summaryrefslogtreecommitdiff
path: root/lib/CodeGen/ExpandPostRAPseudos.cpp
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2012-07-27 20:19:49 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2012-07-27 20:19:49 +0000
commit72e7dbf88be36b96aefd9fe8912f33ab8afb7352 (patch)
tree7a1b6be439bd760155e53fedb36aeccd3431dfb5 /lib/CodeGen/ExpandPostRAPseudos.cpp
parente82fafe9e22c7f0bb35ec4cb7d5428bf9e930807 (diff)
downloadllvm-72e7dbf88be36b96aefd9fe8912f33ab8afb7352.tar.gz
llvm-72e7dbf88be36b96aefd9fe8912f33ab8afb7352.tar.bz2
llvm-72e7dbf88be36b96aefd9fe8912f33ab8afb7352.tar.xz
Add <imp-def> of super-register when lowering SUBREG_TO_REG.
Patch by Tyler Nowicki! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160888 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/ExpandPostRAPseudos.cpp')
-rw-r--r--lib/CodeGen/ExpandPostRAPseudos.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/lib/CodeGen/ExpandPostRAPseudos.cpp b/lib/CodeGen/ExpandPostRAPseudos.cpp
index b14afc286d..7a17331ba1 100644
--- a/lib/CodeGen/ExpandPostRAPseudos.cpp
+++ b/lib/CodeGen/ExpandPostRAPseudos.cpp
@@ -131,13 +131,16 @@ bool ExpandPostRA::LowerSubregToReg(MachineInstr *MI) {
} else {
TII->copyPhysReg(*MBB, MI, MI->getDebugLoc(), DstSubReg, InsReg,
MI->getOperand(2).isKill());
+
+ // Implicitly define DstReg for subsequent uses.
+ MachineBasicBlock::iterator CopyMI = MI;
+ --CopyMI;
+ CopyMI->addRegisterDefined(DstReg);
+
// Transfer the kill/dead flags, if needed.
if (MI->getOperand(0).isDead())
TransferDeadFlag(MI, DstSubReg, TRI);
- DEBUG({
- MachineBasicBlock::iterator dMI = MI;
- dbgs() << "subreg: " << *(--dMI);
- });
+ DEBUG(dbgs() << "subreg: " << *CopyMI);
}
DEBUG(dbgs() << '\n');