[llvm] r220645 - Revert "[PBQP] Unique-ptrify some PBQP Metadata structures. No functional change." (r220642)
Lang Hames
lhames at gmail.com
Sun Oct 26 13:44:09 PDT 2014
Oh:
This diagnostic occurred in the compiler generated function
'llvm::PBQP::RegAlloc::NodeMetadata::NodeMetadata(const
llvm::PBQP::RegAlloc::NodeMetadata &)'
That explains that, though it's less clear why VC thinks a copy constructor
is needed.
Will have a fix shortly.
- Lang.
On Sun, Oct 26, 2014 at 1:36 PM, Lang Hames <lhames at gmail.com> wrote:
> That's odd. It's just a unique_ptr to an array - that should be supported.
> I'm going to try #including memory directly and recommit.
>
> - Lang.
>
> On Sun, Oct 26, 2014 at 12:50 PM, Hans Wennborg <hans at hanshq.net> wrote:
>
>> Author: hans
>> Date: Sun Oct 26 14:50:13 2014
>> New Revision: 220645
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=220645&view=rev
>> Log:
>> 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 &)'
>>
>> Modified:
>> llvm/trunk/include/llvm/CodeGen/RegAllocPBQP.h
>>
>> Modified: llvm/trunk/include/llvm/CodeGen/RegAllocPBQP.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/RegAllocPBQP.h?rev=220645&r1=220644&r2=220645&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/include/llvm/CodeGen/RegAllocPBQP.h (original)
>> +++ llvm/trunk/include/llvm/CodeGen/RegAllocPBQP.h Sun Oct 26 14:50:13
>> 2014
>> @@ -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;
>> };
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141026/063069a4/attachment.html>
More information about the llvm-commits
mailing list