summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
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
commite256f71937673b69730541adbe653f4d823ceb79 (patch)
treec51329e2d8cdea37e7e8a11352ec33ada3204fe7 /llvm/lib/CodeGen
parentde4ca5b789513c6d672661cc2a726c046c0043c7 (diff)
downloadbcm5719-llvm-e256f71937673b69730541adbe653f4d823ceb79.tar.gz
bcm5719-llvm-e256f71937673b69730541adbe653f4d823ceb79.zip
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! llvm-svn: 157632
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r--llvm/lib/CodeGen/LiveIntervalAnalysis.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp b/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp
index 78a634adf0b..bb767a71ecf 100644
--- a/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp
+++ b/llvm/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.");
OpenPOWER on IntegriCloud