From fecf067db40ffa1a6d5d665769c90cd29547f502 Mon Sep 17 00:00:00 2001 From: Valery Pykhtin Date: Thu, 27 Oct 2022 09:06:27 +0200 Subject: [PATCH] [AMDGPU] Add EXPENSIVE_CHECK into GCNRPTracker::reset This would check if passed in live-ins registers match those calculated using LIS. This check currently breaks 420 lit tests when enabled. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D136860 --- llvm/lib/Target/AMDGPU/GCNRegPressure.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/llvm/lib/Target/AMDGPU/GCNRegPressure.cpp b/llvm/lib/Target/AMDGPU/GCNRegPressure.cpp index 2f38f7f65f80b..e0059e6b51cfe 100644 --- a/llvm/lib/Target/AMDGPU/GCNRegPressure.cpp +++ b/llvm/lib/Target/AMDGPU/GCNRegPressure.cpp @@ -260,6 +260,22 @@ void GCNRPTracker::reset(const MachineInstr &MI, } MaxPressure = CurPressure = getRegPressure(*MRI, LiveRegs); + + LLVM_DEBUG(dbgs() << "\nReset " << (After ? "after" : "before") << ": " << MI + << print(LiveRegs, *MRI)); +#if defined(EXPENSIVE_CHECKS) && !defined(NDEBUG) + if (LiveRegsCopy) { + auto LISLRS = + After ? getLiveRegsAfter(MI, LIS) : getLiveRegsBefore(MI, LIS); + if (!isEqual(LISLRS, *LiveRegsCopy)) { + dbgs() << "RP mismatch: " + << reportMismatch(LISLRS, *LiveRegsCopy, + MRI->getTargetRegisterInfo()); + llvm_unreachable("GCNRPTracker::reset LiveRegsCopy doens't match those " + "calculated by LIS"); + } + } +#endif } void GCNUpwardRPTracker::reset(const MachineInstr &MI,