summaryrefslogtreecommitdiff
path: root/lib/CodeGen/LiveIntervalAnalysis.cpp
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2012-05-29 18:19:54 +0000
committerLang Hames <lhames@gmail.com>2012-05-29 18:19:54 +0000
commitf905f69668e5dd184c0a2b5fae38d9f3721c0d3b (patch)
tree0e0db680b87715d3eae44e47255a618018732e62 /lib/CodeGen/LiveIntervalAnalysis.cpp
parente23642916bcd546c1a3ee3cac45538c6c3893f6f (diff)
downloadllvm-f905f69668e5dd184c0a2b5fae38d9f3721c0d3b.tar.gz
llvm-f905f69668e5dd184c0a2b5fae38d9f3721c0d3b.tar.bz2
llvm-f905f69668e5dd184c0a2b5fae38d9f3721c0d3b.tar.xz
Clear the entering, exiting and internal ranges of a bundle before collecting
ranges for the instruction about to be bundled. This fixes a bug in an external project where an assertion was triggered due to spurious 'multiple defs' within the bundle. Patch by Ivan Llopard. Thanks Ivan! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157632 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/LiveIntervalAnalysis.cpp')
-rw-r--r--lib/CodeGen/LiveIntervalAnalysis.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/CodeGen/LiveIntervalAnalysis.cpp b/lib/CodeGen/LiveIntervalAnalysis.cpp
index 78a634adf0..bb767a71ec 100644
--- a/lib/CodeGen/LiveIntervalAnalysis.cpp
+++ b/lib/CodeGen/LiveIntervalAnalysis.cpp
@@ -1097,6 +1097,9 @@ public:
BundleRanges BR = createBundleRanges(Entering, Internal, Exiting);
+ Entering.clear();
+ Internal.clear();
+ Exiting.clear();
collectRanges(MI, Entering, Internal, Exiting, hasRegMaskOp, OldIdx);
assert(!hasRegMaskOp && "Can't have RegMask operand in bundle.");