Skip to content

Commit 6cfceb2

Browse files
Use OwningArrayRef.
1 parent 61a2c2d commit 6cfceb2

File tree

1 file changed

+9
-15
lines changed

1 file changed

+9
-15
lines changed

llvm/include/llvm/CodeGen/RegAllocPBQP.h

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -184,15 +184,14 @@ class NodeMetadata {
184184
NodeMetadata() = default;
185185

186186
NodeMetadata(const NodeMetadata &Other)
187-
: RS(Other.RS), NumOpts(Other.NumOpts), DeniedOpts(Other.DeniedOpts),
188-
OptUnsafeEdges(new unsigned[NumOpts]), VReg(Other.VReg),
189-
AllowedRegs(Other.AllowedRegs)
187+
: RS(Other.RS), DeniedOpts(Other.DeniedOpts),
188+
OptUnsafeEdges(ArrayRef<unsigned>(Other.OptUnsafeEdges)),
189+
VReg(Other.VReg), AllowedRegs(Other.AllowedRegs)
190190
#if LLVM_ENABLE_ABI_BREAKING_CHECKS
191191
,
192192
everConservativelyAllocatable(Other.everConservativelyAllocatable)
193193
#endif
194194
{
195-
llvm::copy(Other.optUnsafeEdges(), &OptUnsafeEdges[0]);
196195
}
197196

198197
NodeMetadata(NodeMetadata &&) = default;
@@ -207,8 +206,7 @@ class NodeMetadata {
207206
const AllowedRegVector& getAllowedRegs() const { return *AllowedRegs; }
208207

209208
void setup(const Vector& Costs) {
210-
NumOpts = Costs.getLength() - 1;
211-
OptUnsafeEdges = std::unique_ptr<unsigned[]>(new unsigned[NumOpts]());
209+
OptUnsafeEdges = OwningArrayRef<unsigned>(Costs.getLength() - 1);
212210
}
213211

214212
ReductionState getReductionState() const { return RS; }
@@ -228,20 +226,21 @@ class NodeMetadata {
228226
DeniedOpts += Transpose ? MD.getWorstRow() : MD.getWorstCol();
229227
const bool* UnsafeOpts =
230228
Transpose ? MD.getUnsafeCols() : MD.getUnsafeRows();
231-
for (unsigned i = 0; i < NumOpts; ++i)
229+
for (unsigned i = 0; i < OptUnsafeEdges.size(); ++i)
232230
OptUnsafeEdges[i] += UnsafeOpts[i];
233231
}
234232

235233
void handleRemoveEdge(const MatrixMetadata& MD, bool Transpose) {
236234
DeniedOpts -= Transpose ? MD.getWorstRow() : MD.getWorstCol();
237235
const bool* UnsafeOpts =
238236
Transpose ? MD.getUnsafeCols() : MD.getUnsafeRows();
239-
for (unsigned i = 0; i < NumOpts; ++i)
237+
for (unsigned i = 0; i < OptUnsafeEdges.size(); ++i)
240238
OptUnsafeEdges[i] -= UnsafeOpts[i];
241239
}
242240

243241
bool isConservativelyAllocatable() const {
244-
return (DeniedOpts < NumOpts) || llvm::is_contained(optUnsafeEdges(), 0);
242+
return (DeniedOpts < OptUnsafeEdges.size()) ||
243+
llvm::is_contained(OptUnsafeEdges, 0);
245244
}
246245

247246
#if LLVM_ENABLE_ABI_BREAKING_CHECKS
@@ -252,16 +251,11 @@ class NodeMetadata {
252251

253252
private:
254253
ReductionState RS = Unprocessed;
255-
unsigned NumOpts = 0;
256254
unsigned DeniedOpts = 0;
257-
std::unique_ptr<unsigned[]> OptUnsafeEdges;
255+
OwningArrayRef<unsigned> OptUnsafeEdges;
258256
Register VReg;
259257
GraphMetadata::AllowedRegVecRef AllowedRegs;
260258

261-
ArrayRef<unsigned> optUnsafeEdges() const {
262-
return ArrayRef<unsigned>(OptUnsafeEdges.get(), NumOpts);
263-
}
264-
265259
#if LLVM_ENABLE_ABI_BREAKING_CHECKS
266260
bool everConservativelyAllocatable = false;
267261
#endif

0 commit comments

Comments
 (0)