Author: Florian Mayer Date: 2025-04-28T11:34:31-07:00 New Revision: ad7ed8586a1ab0548bd307b2bead3039e5cbb236
URL: https://github.com/llvm/llvm-project/commit/ad7ed8586a1ab0548bd307b2bead3039e5cbb236 DIFF: https://github.com/llvm/llvm-project/commit/ad7ed8586a1ab0548bd307b2bead3039e5cbb236.diff LOG: Revert "[CodeGen] Use OwningArrayRef in NodeMetadata (NFC) (#137539)" This reverts commit 08beaa868ecc4846755f8679a68e79f4642b268b. Added: Modified: llvm/include/llvm/CodeGen/RegAllocPBQP.h Removed: ################################################################################ diff --git a/llvm/include/llvm/CodeGen/RegAllocPBQP.h b/llvm/include/llvm/CodeGen/RegAllocPBQP.h index 9c74cd2ebc0b1..234f1c6ff115a 100644 --- a/llvm/include/llvm/CodeGen/RegAllocPBQP.h +++ b/llvm/include/llvm/CodeGen/RegAllocPBQP.h @@ -15,7 +15,6 @@ #ifndef LLVM_CODEGEN_REGALLOCPBQP_H #define LLVM_CODEGEN_REGALLOCPBQP_H -#include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/DenseMap.h" #include "llvm/ADT/Hashing.h" #include "llvm/CodeGen/PBQP/CostAllocator.h" @@ -184,14 +183,18 @@ class NodeMetadata { NodeMetadata() = default; NodeMetadata(const NodeMetadata &Other) - : RS(Other.RS), DeniedOpts(Other.DeniedOpts), - OptUnsafeEdges(ArrayRef<unsigned>(Other.OptUnsafeEdges)), - VReg(Other.VReg), AllowedRegs(Other.AllowedRegs) + : RS(Other.RS), NumOpts(Other.NumOpts), DeniedOpts(Other.DeniedOpts), + OptUnsafeEdges(new unsigned[NumOpts]), VReg(Other.VReg), + AllowedRegs(Other.AllowedRegs) #if LLVM_ENABLE_ABI_BREAKING_CHECKS , everConservativelyAllocatable(Other.everConservativelyAllocatable) #endif { + if (NumOpts > 0) { + std::copy(&Other.OptUnsafeEdges[0], &Other.OptUnsafeEdges[NumOpts], + &OptUnsafeEdges[0]); + } } NodeMetadata(NodeMetadata &&) = default; @@ -206,7 +209,8 @@ class NodeMetadata { const AllowedRegVector& getAllowedRegs() const { return *AllowedRegs; } void setup(const Vector& Costs) { - OptUnsafeEdges = OwningArrayRef<unsigned>(Costs.getLength() - 1); + NumOpts = Costs.getLength() - 1; + OptUnsafeEdges = std::unique_ptr<unsigned[]>(new unsigned[NumOpts]()); } ReductionState getReductionState() const { return RS; } @@ -226,7 +230,7 @@ class NodeMetadata { DeniedOpts += Transpose ? MD.getWorstRow() : MD.getWorstCol(); const bool* UnsafeOpts = Transpose ? MD.getUnsafeCols() : MD.getUnsafeRows(); - for (unsigned i = 0; i < OptUnsafeEdges.size(); ++i) + for (unsigned i = 0; i < NumOpts; ++i) OptUnsafeEdges[i] += UnsafeOpts[i]; } @@ -234,13 +238,14 @@ class NodeMetadata { DeniedOpts -= Transpose ? MD.getWorstRow() : MD.getWorstCol(); const bool* UnsafeOpts = Transpose ? MD.getUnsafeCols() : MD.getUnsafeRows(); - for (unsigned i = 0; i < OptUnsafeEdges.size(); ++i) + for (unsigned i = 0; i < NumOpts; ++i) OptUnsafeEdges[i] -= UnsafeOpts[i]; } bool isConservativelyAllocatable() const { - return (DeniedOpts < OptUnsafeEdges.size()) || - llvm::is_contained(OptUnsafeEdges, 0); + return (DeniedOpts < NumOpts) || + (std::find(&OptUnsafeEdges[0], &OptUnsafeEdges[NumOpts], 0) != + &OptUnsafeEdges[NumOpts]); } #if LLVM_ENABLE_ABI_BREAKING_CHECKS @@ -251,8 +256,9 @@ class NodeMetadata { private: ReductionState RS = Unprocessed; + unsigned NumOpts = 0; unsigned DeniedOpts = 0; - OwningArrayRef<unsigned> OptUnsafeEdges; + std::unique_ptr<unsigned[]> OptUnsafeEdges; Register VReg; GraphMetadata::AllowedRegVecRef AllowedRegs; _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits