================
@@ -320,12 +325,72 @@ class GCNRPTracker {
 
 protected:
   const LiveIntervals &LIS;
+
   LiveRegSet VirtLiveRegs;
+
+  // Physical register liveness: Units provides O(1) unit-level alias checks,
+  // Regs tracks which register names contributed to pressure for cheap
+  // reconstruction. Both must be kept in sync.
+  struct PhysicalRegLiveness {
+    LiveRegUnits Units;
+    SmallDenseSet<MCRegister, 16> Regs;
+
+    void init(const TargetRegisterInfo &TRI) {
+      Units.init(TRI);
+      Regs.clear();
+    }
+    void clear() {
+      Units.clear();
+      Regs.clear();
+    }
+    const BitVector &getBitVector() const { return Units.getBitVector(); }
+
+    void add(Register Reg) {
----------------
dhruvachak wrote:

Fixed.

https://github.com/llvm/llvm-project/pull/184275
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to