diff options
author | Hans Wennborg <hans@hanshq.net> | 2014-10-26 19:50:13 +0000 |
---|---|---|
committer | Hans Wennborg <hans@hanshq.net> | 2014-10-26 19:50:13 +0000 |
commit | deb10060abb631a004ed5f70bef5dcd487863bbd (patch) | |
tree | 33db88e6d04539e31103ebd1c7187abecb9f3b1e | |
parent | 0ef0aeca4f1bc1c3d5367ba7114c38dd3685e18c (diff) | |
download | bcm5719-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.h | 22 |
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; }; |