[llvm] r284972 - [RDF] Add default move constructors/assignment operators

David Blaikie via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 24 10:24:24 PDT 2016


On Mon, Oct 24, 2016 at 10:22 AM Krzysztof Parzyszek <
kparzysz at codeaurora.org> wrote:

> IIRC declaring constructors effectively disables any default ones,
> unless they are explicitly listed as well.


Nah - only declaring the special ones disables other special ones.

If you don't write any of the move/copy ops (or the dtor), you'll get them
all for free.


> Is this causing a problem
> somewhere?
>

Nope - just figure less code's generally better, when we can help it :)


> This not strictly necessary for any functional purpose (other than
> potential performance gains).
>
> -Krzysztof
>
>
> On 10/24/2016 10:46 AM, David Blaikie wrote:
> > Do you need to write any of these out, or could you just let them be
> > provided as implicit defaults?
> >
> > On Mon, Oct 24, 2016 at 6:24 AM Krzysztof Parzyszek via llvm-commits
> > <llvm-commits at lists.llvm.org <mailto:llvm-commits at lists.llvm.org>>
> wrote:
> >
> >     Author: kparzysz
> >     Date: Mon Oct 24 08:15:20 2016
> >     New Revision: 284972
> >
> >     URL: http://llvm.org/viewvc/llvm-project?rev=284972&view=rev
> >     Log:
> >     [RDF] Add default move constructors/assignment operators
> >
> >     Modified:
> >         llvm/trunk/lib/Target/Hexagon/RDFGraph.h
> >
> >     Modified: llvm/trunk/lib/Target/Hexagon/RDFGraph.h
> >     URL:
> >
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Hexagon/RDFGraph.h?rev=284972&r1=284971&r2=284972&view=diff
> >
>  ==============================================================================
> >     --- llvm/trunk/lib/Target/Hexagon/RDFGraph.h (original)
> >     +++ llvm/trunk/lib/Target/Hexagon/RDFGraph.h Mon Oct 24 08:15:20 2016
> >     @@ -329,7 +329,9 @@ namespace rdf {
> >          NodeAddr() : Addr(nullptr), Id(0) {}
> >          NodeAddr(T A, NodeId I) : Addr(A), Id(I) {}
> >          NodeAddr(const NodeAddr&) = default;
> >     +    NodeAddr(NodeAddr&&) = default;
> >          NodeAddr &operator= (const NodeAddr&) = default;
> >     +    NodeAddr &operator= (NodeAddr&&) = default;
> >
> >          bool operator== (const NodeAddr<T> &NA) const {
> >            assert((Addr == NA.Addr) == (Id == NA.Id));
> >     @@ -407,8 +409,10 @@ namespace rdf {
> >          RegisterRef() : RegisterRef(0) {}
> >          explicit RegisterRef(RegisterId R, LaneBitmask M =
> ~LaneBitmask(0))
> >            : Reg(R), Mask(R != 0 ? M : 0) {}
> >     -    RegisterRef(const RegisterRef &RR) = default;
> >     -    RegisterRef &operator= (const RegisterRef &RR) = default;
> >     +    RegisterRef(const RegisterRef&) = default;
> >     +    RegisterRef(RegisterRef&&) = default;
> >     +    RegisterRef &operator= (const RegisterRef&) = default;
> >     +    RegisterRef &operator= (RegisterRef&&) = default;
> >          operator bool() const { return Reg != 0 && Mask !=
> >     LaneBitmask(0); }
> >          bool operator== (const RegisterRef &RR) const {
> >            return Reg == RR.Reg && Mask == RR.Mask;
> >
> >
> >     _______________________________________________
> >     llvm-commits mailing list
> >     llvm-commits at lists.llvm.org <mailto:llvm-commits at lists.llvm.org>
> >     http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
> >
>
> --
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
> hosted by The Linux Foundation
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161024/8129cbb6/attachment.html>


More information about the llvm-commits mailing list