diff options
| author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-05-10 17:37:41 +0000 |
|---|---|---|
| committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-05-10 17:37:41 +0000 |
| commit | 50215afd8a61f18a6383327123ef563c58e77389 (patch) | |
| tree | b455b2bb8c5ab5a7be6e530fd2a238565283af95 /llvm/lib/CodeGen/SplitKit.cpp | |
| parent | 86a5101c277646fc8b82ab4b246fea82a0df7fd7 (diff) | |
| download | llvm-50215afd8a61f18a6383327123ef563c58e77389.zip llvm-50215afd8a61f18a6383327123ef563c58e77389.tar.gz llvm-50215afd8a61f18a6383327123ef563c58e77389.tar.bz2 | |
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.
llvm-svn: 131133
Diffstat (limited to 'llvm/lib/CodeGen/SplitKit.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/SplitKit.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/SplitKit.cpp b/llvm/lib/CodeGen/SplitKit.cpp index 739ba36..55ae97c 100644 --- a/llvm/lib/CodeGen/SplitKit.cpp +++ b/llvm/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)); |
