summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2014-10-26 19:50:13 +0000
committerHans Wennborg <hans@hanshq.net>2014-10-26 19:50:13 +0000
commitdeb10060abb631a004ed5f70bef5dcd487863bbd (patch)
tree33db88e6d04539e31103ebd1c7187abecb9f3b1e
parent0ef0aeca4f1bc1c3d5367ba7114c38dd3685e18c (diff)
downloadbcm5719-llvm-deb10060abb631a004ed5f70bef5dcd487863bbd.tar.gz
bcm5719-llvm-deb10060abb631a004ed5f70bef5dcd487863bbd.zip
Revert "[PBQP] Unique-ptrify some PBQP Metadata structures. No functional change." (r220642)
It broke the Windows build: [1/19] Building CXX object lib\CodeGen\CMakeFiles\LLVMCodeGen.dir\RegAllocPBQP.cpp.obj C:\bb-win7\ninja-clang-i686-msc17-R\llvm-project\llvm\include\llvm/CodeGen/RegAllocPBQP.h(132) : error C2248: 'std::unique_ptr<_Ty>::unique_ptr' : cannot access private member declared in class 'std::unique_ptr<_Ty>' with [ _Ty=unsigned int [] ] D:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\memory(1600) : see declaration of 'std::unique_ptr<_Ty>::unique_ptr' with [ _Ty=unsigned int [] ] This diagnostic occurred in the compiler generated function 'llvm::PBQP::RegAlloc::NodeMetadata::NodeMetadata(const llvm::PBQP::RegAlloc::NodeMetadata &)' llvm-svn: 220645
-rw-r--r--llvm/include/llvm/CodeGen/RegAllocPBQP.h22
1 files changed, 14 insertions, 8 deletions
diff --git a/llvm/include/llvm/CodeGen/RegAllocPBQP.h b/llvm/include/llvm/CodeGen/RegAllocPBQP.h
index 2dca0e786de..3d242f1bebe 100644
--- a/llvm/include/llvm/CodeGen/RegAllocPBQP.h
+++ b/llvm/include/llvm/CodeGen/RegAllocPBQP.h
@@ -62,15 +62,20 @@ public:
delete[] ColCounts;
}
+ ~MatrixMetadata() {
+ delete[] UnsafeRows;
+ delete[] UnsafeCols;
+ }
+
unsigned getWorstRow() const { return WorstRow; }
unsigned getWorstCol() const { return WorstCol; }
- const bool* getUnsafeRows() const { return UnsafeRows.get(); }
- const bool* getUnsafeCols() const { return UnsafeCols.get(); }
+ const bool* getUnsafeRows() const { return UnsafeRows; }
+ const bool* getUnsafeCols() const { return UnsafeCols; }
private:
unsigned WorstRow, WorstCol;
- std::unique_ptr<bool[]> UnsafeRows;
- std::unique_ptr<bool[]> UnsafeCols;
+ bool* UnsafeRows;
+ bool* UnsafeCols;
};
class NodeMetadata {
@@ -83,6 +88,7 @@ public:
NotProvablyAllocatable } ReductionState;
NodeMetadata() : RS(Unprocessed), DeniedOpts(0), OptUnsafeEdges(nullptr){}
+ ~NodeMetadata() { delete[] OptUnsafeEdges; }
void setVReg(unsigned VReg) { this->VReg = VReg; }
unsigned getVReg() const { return VReg; }
@@ -94,7 +100,7 @@ public:
void setup(const Vector& Costs) {
NumOpts = Costs.getLength() - 1;
- OptUnsafeEdges = std::unique_ptr<unsigned[]>(new unsigned[NumOpts]());
+ OptUnsafeEdges = new unsigned[NumOpts]();
}
ReductionState getReductionState() const { return RS; }
@@ -118,15 +124,15 @@ public:
bool isConservativelyAllocatable() const {
return (DeniedOpts < NumOpts) ||
- (std::find(&OptUnsafeEdges[0], &OptUnsafeEdges[NumOpts], 0) !=
- &OptUnsafeEdges[NumOpts]);
+ (std::find(OptUnsafeEdges, OptUnsafeEdges + NumOpts, 0) !=
+ OptUnsafeEdges + NumOpts);
}
private:
ReductionState RS;
unsigned NumOpts;
unsigned DeniedOpts;
- std::unique_ptr<unsigned[]> OptUnsafeEdges;
+ unsigned* OptUnsafeEdges;
unsigned VReg;
OptionToRegMap OptionRegs;
};
OpenPOWER on IntegriCloud