Add a FIXME.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 5 Oct 2011 16:51:21 +0000 (16:51 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Wed, 5 Oct 2011 16:51:21 +0000 (16:51 +0000)
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).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141187 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/LiveIntervalAnalysis.cpp

index 3d95827226a0e95d6208de6f0f01155f67f909c3..b1e202a273d3a71416b20cf8f63095d29f60866c 100644 (file)
@@ -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>.