summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2011-10-05 16:51:21 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2011-10-05 16:51:21 +0000
commitccdfbfb5e5501b0564a309da007b6cdc5b7781ca (patch)
tree88640919ae7d370c788de1683d2beb17b1b8dfc5 /llvm/lib/CodeGen
parent6e8129e1279096fd30ae995aeeac4132a2f72e05 (diff)
downloadbcm5719-llvm-ccdfbfb5e5501b0564a309da007b6cdc5b7781ca.tar.gz
bcm5719-llvm-ccdfbfb5e5501b0564a309da007b6cdc5b7781ca.zip
Add a FIXME.
TwoAddressInstructionPass should annotate instructions with <undef> flags when it lower REG_SEQUENCE instructions. LiveIntervals should not be in the business of modifying code (except for kill flags, perhaps). llvm-svn: 141187
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r--llvm/lib/CodeGen/LiveIntervalAnalysis.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp b/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp
index 3d95827226a..b1e202a273d 100644
--- a/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp
+++ b/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp
@@ -304,6 +304,10 @@ void LiveIntervals::handleVirtualRegisterDef(MachineBasicBlock *mbb,
// Make sure the first definition is not a partial redefinition. Add an
// <imp-def> of the full register.
+ // FIXME: LiveIntervals shouldn't modify the code like this. Whoever
+ // created the machine instruction should annotate it with <undef> flags
+ // as needed. Then we can simply assert here. The REG_SEQUENCE lowering
+ // is the main suspect.
if (MO.getSubReg()) {
mi->addRegisterDefined(interval.reg);
// Mark all defs of interval.reg on this instruction as reading <undef>.
OpenPOWER on IntegriCloud