aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorMarkus Böck <markus.bock+llvm@nextsilicon.com>2023-07-19 16:35:54 +0200
committerMarkus Böck <markus.bock+llvm@nextsilicon.com>2023-07-20 15:05:28 +0200
commitf9173c2958bf6cb9bf23cb00184ce91dfba6acbc (patch)
tree72850932ae2a9815fb83c9c39f112809373f15a1 /flang/lib/Frontend/CompilerInvocation.cpp
parente1aa4e7b383e37442df6bb49f4f3db2069487765 (diff)
downloadllvm-f9173c2958bf6cb9bf23cb00184ce91dfba6acbc.zip
llvm-f9173c2958bf6cb9bf23cb00184ce91dfba6acbc.tar.gz
llvm-f9173c2958bf6cb9bf23cb00184ce91dfba6acbc.tar.bz2
[mlir][LLVM] Convert `noalias` parameters into alias scopes during inlining
Currently, inlining a function with a `noalias` parameter leads to a large loss of optimization potential as the `noalias` parameter, an important hint for alias analysis, is lost completely. This patch fixes this with the same approach as LLVM by annotating all users of the `noalias` parameter with appropriate alias and noalias scope lists. The implementation done here is not as sophisticated as LLVMs, which has more infrastructure related to escaping and captured pointers, but should work in the majority of important cases. Any deficiency can be addressed in future patches. Related LLVM code: https://github.com/llvm/llvm-project/blob/27ade4b554774187d2c0afcf64cd16fa6d5f619d/llvm/lib/Transforms/Utils/InlineFunction.cpp#L1090 Differential Revision: https://reviews.llvm.org/D155712
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions