summaryrefslogtreecommitdiff
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
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
-rw-r--r--lib/CodeGen/ExpandPostRAPseudos.cpp11
-rw-r--r--test/CodeGen/X86/liveness-local-regalloc.ll2
2 files changed, 8 insertions, 5 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');
diff --git a/test/CodeGen/X86/liveness-local-regalloc.ll b/test/CodeGen/X86/liveness-local-regalloc.ll
index faeeaa7e9c..721f545985 100644
--- a/test/CodeGen/X86/liveness-local-regalloc.ll
+++ b/test/CodeGen/X86/liveness-local-regalloc.ll
@@ -1,4 +1,4 @@
-; RUN: llc < %s -mcpu=generic -regalloc=fast -optimize-regalloc=0 -verify-machineinstrs -mtriple=x86_64-apple-darwin10
+; RUN: llc < %s -regalloc=fast -optimize-regalloc=0 -verify-machineinstrs -mtriple=x86_64-apple-darwin10
; <rdar://problem/7755473>
; PR12821