summaryrefslogtreecommitdiff
path: root/lib/CodeGen/LiveIntervalAnalysis.cpp
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
commitb0e1bc7b99809e2b45726affd73f72c60c506ea0 (patch)
treef567546c6cf2424c5e060eb79041847362df9e4b /lib/CodeGen/LiveIntervalAnalysis.cpp
parent62c607b74157eadd78679434bb92d82f347d0bc1 (diff)
downloadllvm-b0e1bc7b99809e2b45726affd73f72c60c506ea0.tar.gz
llvm-b0e1bc7b99809e2b45726affd73f72c60c506ea0.tar.bz2
llvm-b0e1bc7b99809e2b45726affd73f72c60c506ea0.tar.xz
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). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141187 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/LiveIntervalAnalysis.cpp')
-rw-r--r--lib/CodeGen/LiveIntervalAnalysis.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/CodeGen/LiveIntervalAnalysis.cpp b/lib/CodeGen/LiveIntervalAnalysis.cpp
index 3d95827226..b1e202a273 100644
--- a/lib/CodeGen/LiveIntervalAnalysis.cpp
+++ b/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>.