[llvm] r285298 - Fix memory issue in AttrBuilder::removeAttribute uses.

David Blaikie via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 31 11:05:46 PDT 2016


This seems a bit problematic, though - self assignment should be valid in
C++, if we're optimizing it to a memcpy without a check for non-equality of
location, isn't that a bug in the compiler we need to fix?

On Thu, Oct 27, 2016 at 7:57 AM Bjorn Pettersson via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

> Author: bjope
> Date: Thu Oct 27 09:48:09 2016
> New Revision: 285298
>
> URL: http://llvm.org/viewvc/llvm-project?rev=285298&view=rev
> Log:
> Fix memory issue in AttrBuilder::removeAttribute uses.
>
> Summary:
> Found when running Valgrind.
>
> This removes two unnecessary assignments when using
> AttrBuilder::removeAttribute.
>
> AttrBuilder::removeAttribute returns a reference to the object.
> As the LHSes were the same as the callees, the assignments
> resulted in memcpy calls where dst = src.
>
> Commited on behalf-of: dstenb (David Stenberg)
>
> Reviewers: mkuper, rnk
>
> Subscribers: llvm-commits
>
> Differential Revision: https://reviews.llvm.org/D25460
>
> Modified:
>     llvm/trunk/lib/CodeGen/Analysis.cpp
>
> Modified: llvm/trunk/lib/CodeGen/Analysis.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/Analysis.cpp?rev=285298&r1=285297&r2=285298&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/Analysis.cpp (original)
> +++ llvm/trunk/lib/CodeGen/Analysis.cpp Thu Oct 27 09:48:09 2016
> @@ -541,8 +541,8 @@ bool llvm::attributesPermitTailCall(cons
>
>    // Noalias is completely benign as far as calling convention goes, it
>    // shouldn't affect whether the call is a tail call.
> -  CallerAttrs = CallerAttrs.removeAttribute(Attribute::NoAlias);
> -  CalleeAttrs = CalleeAttrs.removeAttribute(Attribute::NoAlias);
> +  CallerAttrs.removeAttribute(Attribute::NoAlias);
> +  CalleeAttrs.removeAttribute(Attribute::NoAlias);
>
>    if (CallerAttrs.contains(Attribute::ZExt)) {
>      if (!CalleeAttrs.contains(Attribute::ZExt))
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20161031/839731ad/attachment.html>


More information about the llvm-commits mailing list