diff options
| author | Cameron Zwarich <zwarich@apple.com> | 2013-02-12 03:49:22 +0000 |
|---|---|---|
| committer | Cameron Zwarich <zwarich@apple.com> | 2013-02-12 03:49:22 +0000 |
| commit | 6d7a4e0c9c37ff23d4a4d3876d125c021f73f73a (patch) | |
| tree | e7af9a0b275f160068fa342b82b630bdebfbbc3f /llvm | |
| parent | cdcab38ff5d0f5fad15f173d533077f552c59b85 (diff) | |
| download | bcm5719-llvm-6d7a4e0c9c37ff23d4a4d3876d125c021f73f73a.tar.gz bcm5719-llvm-6d7a4e0c9c37ff23d4a4d3876d125c021f73f73a.zip | |
Renumber SlotIndexes locally when a new block is inserted.
llvm-svn: 174937
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/include/llvm/CodeGen/SlotIndexes.h | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/llvm/include/llvm/CodeGen/SlotIndexes.h b/llvm/include/llvm/CodeGen/SlotIndexes.h index d4e8c20a318..76c1cea2523 100644 --- a/llvm/include/llvm/CodeGen/SlotIndexes.h +++ b/llvm/include/llvm/CodeGen/SlotIndexes.h @@ -605,14 +605,15 @@ namespace llvm { IndexListEntry *startEntry = 0; IndexListEntry *endEntry = 0; + IndexList::iterator newItr; if (nextMBB == mbb->getParent()->end()) { startEntry = &indexList.back(); endEntry = createEntry(0, 0); - indexList.insertAfter(startEntry, endEntry); + newItr = indexList.insertAfter(startEntry, endEntry); } else { startEntry = createEntry(0, 0); endEntry = getMBBStartIdx(nextMBB).listEntry(); - indexList.insert(endEntry, startEntry); + newItr = indexList.insert(endEntry, startEntry); } SlotIndex startIdx(startEntry, SlotIndex::Slot_Block); @@ -629,9 +630,7 @@ namespace llvm { MBBRanges.push_back(std::make_pair(startIdx, endIdx)); idx2MBBMap.push_back(IdxMBBPair(startIdx, mbb)); - // FIXME: Renumber locally instead of renumbering the whole function every - // time a new block is inserted. - renumberIndexes(); + renumberIndexes(newItr); std::sort(idx2MBBMap.begin(), idx2MBBMap.end(), Idx2MBBCompare()); } |

