aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/RegAllocBasic.cpp
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2011-03-16 22:56:11 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2011-03-16 22:56:11 +0000
commite29d63e98abb3feb8479940fea9432ac74011779 (patch)
tree2108b1f615dc22197cbcd66bb9d9eb79b517cd4b /llvm/lib/CodeGen/RegAllocBasic.cpp
parent557a82c099283c6afd35a047da0ae4dac742e517 (diff)
downloadllvm-e29d63e98abb3feb8479940fea9432ac74011779.zip
llvm-e29d63e98abb3feb8479940fea9432ac74011779.tar.gz
llvm-e29d63e98abb3feb8479940fea9432ac74011779.tar.bz2
Tag cached interference with a user-provided tag instead of the virtual register number.
The live range of a virtual register may change which invalidates the cached interference information. llvm-svn: 127772
Diffstat (limited to 'llvm/lib/CodeGen/RegAllocBasic.cpp')
-rw-r--r--llvm/lib/CodeGen/RegAllocBasic.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/RegAllocBasic.cpp b/llvm/lib/CodeGen/RegAllocBasic.cpp
index d51be52..ce92f3d 100644
--- a/llvm/lib/CodeGen/RegAllocBasic.cpp
+++ b/llvm/lib/CodeGen/RegAllocBasic.cpp
@@ -296,6 +296,9 @@ void RegAllocBase::allocatePhysRegs() {
continue;
}
+ // Invalidate all interference queries, live ranges could have changed.
+ ++UserTag;
+
// selectOrSplit requests the allocator to return an available physical
// register if possible and populate a list of new live intervals that
// result from splitting.