[PATCH] D91576: [MemCpyOpt] Bail on call slot optimization if it merges alias scopes
Jeroen Dobbelaere via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 18 15:16:36 PST 2020
jeroen.dobbelaere added a comment.
Hi Modi,
Following line in your input example is wrong and explains why the resulting alias info is corrupt:
> call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %tmp, i8* align 8 %src, i64 1, i1 false), !alias.scope !1
It should be !alias.scope !0
Given that, it does not change the result of the alias analysis which indeed seems to be wrong. It seems the 'union' should only be allowed if the domains match (and maybe not just for this case ?)
I would propose as solution to not 'merge' the !alias.scope in this case, but to:
- keep it if it is identical on both memcpy
- throw it away if it is not identical
Note to self: check why this should not be a problem with the full restrict patches (which does not use !alias.scope).
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D91576/new/
https://reviews.llvm.org/D91576
More information about the llvm-commits
mailing list