]> granicus.if.org Git - llvm/commitdiff
[Hexagon] Defs and clobbers can overlap
authorKrzysztof Parzyszek <kparzysz@codeaurora.org>
Mon, 27 Feb 2017 18:03:35 +0000 (18:03 +0000)
committerKrzysztof Parzyszek <kparzysz@codeaurora.org>
Mon, 27 Feb 2017 18:03:35 +0000 (18:03 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@296365 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/Hexagon/HexagonBlockRanges.cpp

index 04621f4f440f7ede778b93e5fd9859614ff899cc..721cf0417289b93cc394a7df1f1b570744afaeeb 100644 (file)
@@ -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.