[PATCH] D15075: No error for conflict between inputs\outputs and clobber list

Reid Kleckner via cfe-commits cfe-commits at lists.llvm.org
Thu Nov 30 15:18:49 PST 2017


On Thu, Nov 30, 2017 at 10:21 AM, Dan Olson via Phabricator <
reviews at reviews.llvm.org> wrote:

> dolson added a comment.
>
> Hello,
>
> In the process of upgrading from clang 3.6.1 to a newer version, I ran
> into this new error and thus imported the new intrinsics from intrin.h for
> rep movsb and friends.  I see several discussions in this thread about how
> having the registers solely in the inputs list is not sufficient for
> something like "rep movsb" because the modified registers will not be
> clobbered, however none of these suggested changes made it into the
> eventual intrin.h.
>
> I found that using the versions of `__movsb` and `__stosb` that are at the
> head revision intrin.h produced bad code generation vs the versions with
> the clobbers.  Note this is on PS4 under the older clang 3.6.1, but I don't
> see anything in this CL that would update the clobber behavior for newer
> versions of clang.
>
> Shouldn't the intrinsics be updated to use input/output registers or some
> other method of clobbering?


Yes, they should be. I misread this thread and thought somebody had gone
and fixed these, but I guess not. I sent out https://reviews.llvm.org/D40686
.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20171130/afbaef3b/attachment.html>


More information about the cfe-commits mailing list