summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/InlineSpiller.cpp
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2011-03-31 03:54:44 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2011-03-31 03:54:44 +0000
commitae044c06bf530c0aaf5038c7e69b202e350a8fbd (patch)
treebc0c26bce8ee407733aee1e23bbc61d5ac81814c /llvm/lib/CodeGen/InlineSpiller.cpp
parentb5c6a3e50a0375fe0493ec801c74abdedcebb5d9 (diff)
downloadbcm5719-llvm-ae044c06bf530c0aaf5038c7e69b202e350a8fbd.tar.gz
bcm5719-llvm-ae044c06bf530c0aaf5038c7e69b202e350a8fbd.zip
Pick a conservative register class when creating a small live range for remat.
The rematerialized instruction may require a more constrained register class than the register being spilled. In the test case, the spilled register has been inflated to the DPR register class, but we are rematerializing a load of the ssub_0 sub-register which only exists for DPR_VFP2 registers. The register class is reinflated after spilling, so the conservative choice is only temporary. llvm-svn: 128610
Diffstat (limited to 'llvm/lib/CodeGen/InlineSpiller.cpp')
-rw-r--r--llvm/lib/CodeGen/InlineSpiller.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/InlineSpiller.cpp b/llvm/lib/CodeGen/InlineSpiller.cpp
index d0c750777f3..86f4cfcc92f 100644
--- a/llvm/lib/CodeGen/InlineSpiller.cpp
+++ b/llvm/lib/CodeGen/InlineSpiller.cpp
@@ -627,7 +627,7 @@ bool InlineSpiller::reMaterializeFor(LiveInterval &VirtReg,
}
// Alocate a new register for the remat.
- LiveInterval &NewLI = Edit->createFrom(VirtReg.reg, LIS, VRM);
+ LiveInterval &NewLI = Edit->createFrom(Original, LIS, VRM);
NewLI.markNotSpillable();
// Finally we can rematerialize OrigMI before MI.
OpenPOWER on IntegriCloud