[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