summaryrefslogtreecommitdiff
path: root/lib/CodeGen/SplitKit.cpp
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2011-05-10 17:37:41 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2011-05-10 17:37:41 +0000
commitbdda37d7fbafe6876f248341837423a4100f95a5 (patch)
tree19a15ab39a313eee8b388aa6e4e4f1f6ad46d705 /lib/CodeGen/SplitKit.cpp
parent0d450dc65906a30beb56aeb1ee22b45b1cd4596c (diff)
downloadllvm-bdda37d7fbafe6876f248341837423a4100f95a5.tar.gz
llvm-bdda37d7fbafe6876f248341837423a4100f95a5.tar.bz2
llvm-bdda37d7fbafe6876f248341837423a4100f95a5.tar.xz
Fix PR9883. Make sure all caches are invalidated when a live range is repaired.
The previous invalidation missed the alias interference caches. Also add a stats counter for the number of repaired ranges. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131133 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/SplitKit.cpp')
-rw-r--r--lib/CodeGen/SplitKit.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/CodeGen/SplitKit.cpp b/lib/CodeGen/SplitKit.cpp
index 739ba36274..55ae97c792 100644
--- a/lib/CodeGen/SplitKit.cpp
+++ b/lib/CodeGen/SplitKit.cpp
@@ -32,6 +32,7 @@ STATISTIC(NumFinished, "Number of splits finished");
STATISTIC(NumSimple, "Number of splits that were simple");
STATISTIC(NumCopies, "Number of copies inserted for splitting");
STATISTIC(NumRemats, "Number of rematerialized defs for splitting");
+STATISTIC(NumRepairs, "Number of invalid live ranges repaired");
//===----------------------------------------------------------------------===//
// Split Analysis
@@ -123,6 +124,7 @@ void SplitAnalysis::analyzeUses() {
// FIXME: calcLiveBlockInfo found inconsistencies in the live range.
// I am looking at you, SimpleRegisterCoalescing!
DidRepairRange = true;
+ ++NumRepairs;
DEBUG(dbgs() << "*** Fixing inconsistent live interval! ***\n");
const_cast<LiveIntervals&>(LIS)
.shrinkToUses(const_cast<LiveInterval*>(CurLI));