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 | e7ee72087ec5150a6159e7801a9e1479414cfdd2 (patch) | |
| tree | e1afd619a00d370d97296e85c5a21a0e4fcff6c7 /llvm | |
| parent | e85d9cb8e2cc8fe0d6630e43cc64a601434c044a (diff) | |
| download | bcm5719-llvm-e7ee72087ec5150a6159e7801a9e1479414cfdd2.tar.gz bcm5719-llvm-e7ee72087ec5150a6159e7801a9e1479414cfdd2.zip | |
Q.seenAllInterferences() must be called after Q.collectInterferingVRegs().
llvm-svn: 121774
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/CodeGen/RegAllocGreedy.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/RegAllocGreedy.cpp b/llvm/lib/CodeGen/RegAllocGreedy.cpp index 943da11ad37..46cfbe7234b 100644 --- a/llvm/lib/CodeGen/RegAllocGreedy.cpp +++ b/llvm/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(); } } |

