diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2010-12-14 17:47:36 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2010-12-14 17:47:36 +0000 |
commit | d84de8cf62991597c15e948ecb121ad0233ba4ec (patch) | |
tree | ae36e020e992a080bf3a5c17ef591c34cc88f887 | |
parent | abfbac52df836460392186a61619fe266b40fa8c (diff) |
Q.seenAllInterferences() must be called after Q.collectInterferingVRegs().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121774 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/CodeGen/RegAllocGreedy.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/CodeGen/RegAllocGreedy.cpp b/lib/CodeGen/RegAllocGreedy.cpp index 943da11ad3..46cfbe7234 100644 --- a/lib/CodeGen/RegAllocGreedy.cpp +++ b/lib/CodeGen/RegAllocGreedy.cpp @@ -175,9 +175,9 @@ LiveInterval *RAGreedy::getSingleInterference(LiveInterval &VirtReg, // Check direct interferences. LiveIntervalUnion::Query &Q = query(VirtReg, PhysReg); if (Q.checkInterference()) { + Q.collectInterferingVRegs(1); if (!Q.seenAllInterferences()) return 0; - Q.collectInterferingVRegs(1); Interference = Q.interferingVRegs().front(); } @@ -185,9 +185,11 @@ LiveInterval *RAGreedy::getSingleInterference(LiveInterval &VirtReg, for (const unsigned *AliasI = TRI->getAliasSet(PhysReg); *AliasI; ++AliasI) { LiveIntervalUnion::Query &Q = query(VirtReg, *AliasI); if (Q.checkInterference()) { - if (Interference || !Q.seenAllInterferences()) + if (Interference) return 0; Q.collectInterferingVRegs(1); + if (!Q.seenAllInterferences()) + return 0; Interference = Q.interferingVRegs().front(); } } |