diff options
| author | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2016-11-02 17:59:54 +0000 |
|---|---|---|
| committer | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2016-11-02 17:59:54 +0000 |
| commit | ead77016d863fc045a584748cb627e63667df67d (patch) | |
| tree | 8e1d5891822d833eae07f0f2545087c3d70ae50d /llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp | |
| parent | cee23446e1c50ef7c6d6906c9146460a198803fa (diff) | |
| download | bcm5719-llvm-ead77016d863fc045a584748cb627e63667df67d.tar.gz bcm5719-llvm-ead77016d863fc045a584748cb627e63667df67d.zip | |
[Hexagon] Remove registers coalesced in expand-condsets from live intervals
llvm-svn: 285846
Diffstat (limited to 'llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp')
| -rw-r--r-- | llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp b/llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp index 15ffa1c4c66..edbd61d5eb4 100644 --- a/llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp +++ b/llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp @@ -1078,6 +1078,8 @@ bool HexagonExpandCondsets::coalesceRegisters(RegisterRef R1, RegisterRef R2) { LiveInterval &L2 = LIS->getInterval(R2.Reg); if (L2.empty()) return false; + if (L1.hasSubRanges() || L2.hasSubRanges()) + return false; bool Overlap = L1.overlaps(L2); DEBUG(dbgs() << "compatible registers: (" @@ -1113,6 +1115,7 @@ bool HexagonExpandCondsets::coalesceRegisters(RegisterRef R1, RegisterRef R2) { } while (L2.begin() != L2.end()) L2.removeSegment(*L2.begin()); + LIS->removeInterval(R2.Reg); updateKillFlags(R1.Reg); DEBUG(dbgs() << "coalesced: " << L1 << "\n"); |

