diff options
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/Hexagon/HexagonBlockRanges.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonBlockRanges.cpp b/llvm/lib/Target/Hexagon/HexagonBlockRanges.cpp index 04621f4f440..721cf041728 100644 --- a/llvm/lib/Target/Hexagon/HexagonBlockRanges.cpp +++ b/llvm/lib/Target/Hexagon/HexagonBlockRanges.cpp @@ -362,12 +362,11 @@ void HexagonBlockRanges::computeInitialLiveRanges(InstrIndexMap &IndexMap, Clobbers.insert(R); } } -#ifndef NDEBUG + // Defs and clobbers can overlap, e.g. + // %D0<def,dead> = COPY %vreg5, %R0<imp-def>, %R1<imp-def> for (RegisterRef R : Defs) - assert(!Clobbers.count(R)); - for (RegisterRef R : Clobbers) - assert(!Defs.count(R)); -#endif + Clobbers.erase(R); + // Update maps for defs. for (RegisterRef S : Defs) { // Defs should already be expanded into subregs. |