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

Dan Olson via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Nov 30 10:21:45 PST 2017


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?


Repository:
  rL LLVM

https://reviews.llvm.org/D15075





More information about the cfe-commits mailing list