Skip to content

Commit 08beaa8

Browse files
[CodeGen] Use OwningArrayRef in NodeMetadata (NFC) (llvm#137539)
1 parent fcd0664 commit 08beaa8

File tree

1 file changed

+10
-16
lines changed

1 file changed

+10
-16
lines changed

llvm/include/llvm/CodeGen/RegAllocPBQP.h

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#ifndef LLVM_CODEGEN_REGALLOCPBQP_H
1616
#define LLVM_CODEGEN_REGALLOCPBQP_H
1717

18+
#include "llvm/ADT/ArrayRef.h"
1819
#include "llvm/ADT/DenseMap.h"
1920
#include "llvm/ADT/Hashing.h"
2021
#include "llvm/CodeGen/PBQP/CostAllocator.h"
@@ -183,18 +184,14 @@ class NodeMetadata {
183184
NodeMetadata() = default;
184185

185186
NodeMetadata(const NodeMetadata &Other)
186-
: RS(Other.RS), NumOpts(Other.NumOpts), DeniedOpts(Other.DeniedOpts),
187-
OptUnsafeEdges(new unsigned[NumOpts]), VReg(Other.VReg),
188-
AllowedRegs(Other.AllowedRegs)
187+
: RS(Other.RS), DeniedOpts(Other.DeniedOpts),
188+
OptUnsafeEdges(ArrayRef<unsigned>(Other.OptUnsafeEdges)),
189+
VReg(Other.VReg), AllowedRegs(Other.AllowedRegs)
189190
#if LLVM_ENABLE_ABI_BREAKING_CHECKS
190191
,
191192
everConservativelyAllocatable(Other.everConservativelyAllocatable)
192193
#endif
193194
{
194-
if (NumOpts > 0) {
195-
std::copy(&Other.OptUnsafeEdges[0], &Other.OptUnsafeEdges[NumOpts],
196-
&OptUnsafeEdges[0]);
197-
}
198195
}
199196

200197
NodeMetadata(NodeMetadata &&) = default;
@@ -209,8 +206,7 @@ class NodeMetadata {
209206
const AllowedRegVector& getAllowedRegs() const { return *AllowedRegs; }
210207

211208
void setup(const Vector& Costs) {
212-
NumOpts = Costs.getLength() - 1;
213-
OptUnsafeEdges = std::unique_ptr<unsigned[]>(new unsigned[NumOpts]());
209+
OptUnsafeEdges = OwningArrayRef<unsigned>(Costs.getLength() - 1);
214210
}
215211

216212
ReductionState getReductionState() const { return RS; }
@@ -230,22 +226,21 @@ class NodeMetadata {
230226
DeniedOpts += Transpose ? MD.getWorstRow() : MD.getWorstCol();
231227
const bool* UnsafeOpts =
232228
Transpose ? MD.getUnsafeCols() : MD.getUnsafeRows();
233-
for (unsigned i = 0; i < NumOpts; ++i)
229+
for (unsigned i = 0; i < OptUnsafeEdges.size(); ++i)
234230
OptUnsafeEdges[i] += UnsafeOpts[i];
235231
}
236232

237233
void handleRemoveEdge(const MatrixMetadata& MD, bool Transpose) {
238234
DeniedOpts -= Transpose ? MD.getWorstRow() : MD.getWorstCol();
239235
const bool* UnsafeOpts =
240236
Transpose ? MD.getUnsafeCols() : MD.getUnsafeRows();
241-
for (unsigned i = 0; i < NumOpts; ++i)
237+
for (unsigned i = 0; i < OptUnsafeEdges.size(); ++i)
242238
OptUnsafeEdges[i] -= UnsafeOpts[i];
243239
}
244240

245241
bool isConservativelyAllocatable() const {
246-
return (DeniedOpts < NumOpts) ||
247-
(std::find(&OptUnsafeEdges[0], &OptUnsafeEdges[NumOpts], 0) !=
248-
&OptUnsafeEdges[NumOpts]);
242+
return (DeniedOpts < OptUnsafeEdges.size()) ||
243+
llvm::is_contained(OptUnsafeEdges, 0);
249244
}
250245

251246
#if LLVM_ENABLE_ABI_BREAKING_CHECKS
@@ -256,9 +251,8 @@ class NodeMetadata {
256251

257252
private:
258253
ReductionState RS = Unprocessed;
259-
unsigned NumOpts = 0;
260254
unsigned DeniedOpts = 0;
261-
std::unique_ptr<unsigned[]> OptUnsafeEdges;
255+
OwningArrayRef<unsigned> OptUnsafeEdges;
262256
Register VReg;
263257
GraphMetadata::AllowedRegVecRef AllowedRegs;
264258

0 commit comments

Comments
 (0)