rsmith added a comment.

In https://reviews.llvm.org/D45306#1058792, @rjmccall wrote:

> Changing the requirements on the return-value slot would be an ABI break, no?


It would be, yes. But WG21 seems to have a taste for breaking changes at the 
moment, so who knows... I'm happy to remove `overlapForReturnValue` for now; 
it's easy enough to find these places again should the change ever happen.

> And it would force to us to treat all complete-object constructions as 
> nvsize-limited unless they're constructions of known sizeof-sized allocations.

P0840 pushes us there already. Fortunately, we don't treat complete-object 
constructors specially in this regard currently, and no other compiler seems to 
do so either. However, when performing the trivial copy/move constructor -> 
`memcpy` optimization (which is I think the most interesting case for extending 
a store into the tail padding), we do know which object is being initialized, 
so we can take into account whether it could have something else allocated into 
its tail padding.



================
Comment at: CodeGen/CGDecl.cpp:1462
+                                              AggValueSlot::IsNotAliased,
+                                              AggValueSlot::DoesNotOverlap));
     }
----------------
rjmccall wrote:
> How is 'does not overlap' justified here?  Should this be propagated into the 
> LValue?
That's what I get for trusting comments :)

No functional change from `DoesNotOverlap` here yet, though, because in 
practice this is always called with some kind of `VarDecl` (which is 
`DoesNotOverlap` because it's a complete object) or some kind of `FieldDecl` 
(which is `DoesNotOverlap` until P0840 lands).


https://reviews.llvm.org/D45306



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
  • [PATCH] D45306: P... Richard Smith - zygoloid via Phabricator via cfe-commits
    • [PATCH] D453... John McCall via Phabricator via cfe-commits
    • [PATCH] D453... Richard Smith - zygoloid via Phabricator via cfe-commits
    • [PATCH] D453... Richard Smith - zygoloid via Phabricator via cfe-commits
    • [PATCH] D453... John McCall via Phabricator via cfe-commits
    • [PATCH] D453... Richard Smith - zygoloid via Phabricator via cfe-commits

Reply via email to