[llvm-dev] GVN removing loads that are affected by call

Ryan Taylor via llvm-dev llvm-dev at lists.llvm.org
Thu Jan 14 08:51:04 PST 2021


So given an intrinsic that has a pointer as in/out and IntrWriteMem
property.

call intrinsic(address a, ....);
loop over address a
  load from address a + offset
call intrinsic (address a, ...);
loop over address a
  load from address a + offset

GVN is removing the second loads, despite the second call overwriting the
memory starting at address a. AA has the intrinsics marked as unknown
instructions but has all of these as mayAlias in a set. I'm not seeing this
issue with -fno-unroll-loops.

Thanks.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210114/494c11ac/attachment.html>


More information about the llvm-dev mailing list