[InlineFunction] Use llvm.experimental.noalias.scope.decl for noalias arguments.
authorJeroen Dobbelaere <jeroen.dobbelaere@synopsys.com>
Sat, 23 Jan 2021 11:10:57 +0000 (12:10 +0100)
committerJeroen Dobbelaere <jeroen.dobbelaere@synopsys.com>
Sat, 23 Jan 2021 11:10:57 +0000 (12:10 +0100)
commit2b9a834c43cb1f93d33958c14b695896bb4e9c1e
treec68b5c635d99453e1c6da74a53c5d06469078e56
parent344afa853fcfcc085cb5c957b4a07c7ea013bb1b
[InlineFunction] Use llvm.experimental.noalias.scope.decl for noalias arguments.

Insert a llvm.experimental.noalias.scope.decl intrinsic that identifies where a noalias argument was inlined.

This patch includes some refactorings from D90104.

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D93040
19 files changed:
clang/test/CodeGen/aarch64-ls64.c
llvm/lib/Transforms/Utils/InlineFunction.cpp
llvm/test/Transforms/Coroutines/ArgAddr.ll
llvm/test/Transforms/Coroutines/coro-retcon-resume-values.ll
llvm/test/Transforms/Coroutines/coro-retcon-value.ll
llvm/test/Transforms/Coroutines/coro-retcon.ll
llvm/test/Transforms/Coroutines/ex2.ll
llvm/test/Transforms/Coroutines/ex3.ll
llvm/test/Transforms/Coroutines/ex4.ll
llvm/test/Transforms/Inline/launder.invariant.group.ll
llvm/test/Transforms/Inline/noalias-calls-always.ll
llvm/test/Transforms/Inline/noalias-calls.ll
llvm/test/Transforms/Inline/noalias-calls2.ll [new file with mode: 0644]
llvm/test/Transforms/Inline/noalias-cs.ll
llvm/test/Transforms/Inline/noalias.ll
llvm/test/Transforms/Inline/noalias2.ll
llvm/test/Transforms/PhaseOrdering/inlining-alignment-assumptions.ll
llvm/test/Transforms/PhaseOrdering/instcombine-sroa-inttoptr.ll
llvm/test/Transforms/PhaseOrdering/pr39282.ll