https://github.com/optimisan created https://github.com/llvm/llvm-project/pull/120556
None >From 516482f2e6eeffacff60807253322bda090f24aa Mon Sep 17 00:00:00 2001 From: Akshat Oke <akshat....@amd.com> Date: Thu, 19 Dec 2024 08:33:48 +0000 Subject: [PATCH] [CodeGen] LiveRegMatrix: Use allocator through a unique_ptr --- llvm/include/llvm/CodeGen/LiveRegMatrix.h | 10 +++------- llvm/lib/CodeGen/LiveRegMatrix.cpp | 2 +- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/llvm/include/llvm/CodeGen/LiveRegMatrix.h b/llvm/include/llvm/CodeGen/LiveRegMatrix.h index 486392ca3c49d5..a7c1e2bcfe1c43 100644 --- a/llvm/include/llvm/CodeGen/LiveRegMatrix.h +++ b/llvm/include/llvm/CodeGen/LiveRegMatrix.h @@ -48,7 +48,7 @@ class LiveRegMatrix { unsigned UserTag = 0; // The matrix is represented as a LiveIntervalUnion per register unit. - LiveIntervalUnion::Allocator LIUAlloc; + std::unique_ptr<LiveIntervalUnion::Allocator> LIUAlloc; LiveIntervalUnion::Array Matrix; // Cached queries per register unit. @@ -59,15 +59,11 @@ class LiveRegMatrix { unsigned RegMaskVirtReg = 0; BitVector RegMaskUsable; - LiveRegMatrix() = default; + LiveRegMatrix() : LIUAlloc(new LiveIntervalUnion::Allocator()) {}; void releaseMemory(); public: - LiveRegMatrix(LiveRegMatrix &&Other) - : TRI(Other.TRI), LIS(Other.LIS), VRM(Other.VRM), UserTag(Other.UserTag), - Matrix(std::move(Other.Matrix)), Queries(std::move(Other.Queries)), - RegMaskTag(Other.RegMaskTag), RegMaskVirtReg(Other.RegMaskVirtReg), - RegMaskUsable(std::move(Other.RegMaskUsable)) {} + LiveRegMatrix(LiveRegMatrix &&Other) = default; void init(MachineFunction &MF, LiveIntervals &LIS, VirtRegMap &VRM); diff --git a/llvm/lib/CodeGen/LiveRegMatrix.cpp b/llvm/lib/CodeGen/LiveRegMatrix.cpp index 9744c47d5a8510..3367171a15662f 100644 --- a/llvm/lib/CodeGen/LiveRegMatrix.cpp +++ b/llvm/lib/CodeGen/LiveRegMatrix.cpp @@ -66,7 +66,7 @@ void LiveRegMatrix::init(MachineFunction &MF, LiveIntervals &pLIS, unsigned NumRegUnits = TRI->getNumRegUnits(); if (NumRegUnits != Matrix.size()) Queries.reset(new LiveIntervalUnion::Query[NumRegUnits]); - Matrix.init(LIUAlloc, NumRegUnits); + Matrix.init(*LIUAlloc, NumRegUnits); // Make sure no stale queries get reused. invalidateVirtRegs(); _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits