[llvm] r220645 - Revert "[PBQP] Unique-ptrify some PBQP Metadata structures. No functional change." (r220642)

Lang Hames lhames at gmail.com
Sun Oct 26 14:23:55 PDT 2014


You, unfortunately, just have to write out the move operations explicitly
to help MSVC along.

>
Sadness indeed. Off I go to do that.

- 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
>> >>
>> >>
>> >
>> >
>> > _______________________________________________
>> > llvm-commits mailing list
>> > llvm-commits at cs.uiuc.edu
>> > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>> >
>> _______________________________________________
>> 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/6ef3c0f4/attachment.html>


More information about the llvm-commits mailing list