aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorAlexandros Lamprineas <alexandros.lamprineas@arm.com>2024-07-26 09:22:47 +0100
committerGitHub <noreply@github.com>2024-07-26 09:22:47 +0100
commitf8ae128755777424cf4133e4e8e819c0bc08d2b1 (patch)
treebb4880d8ad4076e48bb4f4534d505352c0431ebe /flang/lib/Frontend/CompilerInvocation.cpp
parent9440a49b0ff812c889927e4dc81e746b32124bb4 (diff)
downloadllvm-f8ae128755777424cf4133e4e8e819c0bc08d2b1.zip
llvm-f8ae128755777424cf4133e4e8e819c0bc08d2b1.tar.gz
llvm-f8ae128755777424cf4133e4e8e819c0bc08d2b1.tar.bz2
[clang][FMV][AArch64] Improve streaming mode compatibility. (#100181)
* Allow arm-streaming if all the functions versions adhere to it. * Allow arm-streaming-compatible if all the functions versions adhere to it. When the caller needs to toggle the streaming mode all the function versions of the callee must adhere to the same mode, otherwise the call will yield a runtime error. Imagine the versions of the callee live in separate TUs. The version that is visible to the caller will determine the calling convention used when generating code for the callsite. Therefore we cannot support mixing streaming with non-streaming function versions. Imagine TU1 has a streaming caller and calls foo._sme which is streaming-compatible. The codegen for the callsite will not switch off the streaming mode. Then in TU2 we have a version which is non-streaming and could potentially be called in streaming mode. Similarly if the caller is non-streaming and the called version is streaming-compatible the codegen for the callsite will not switch on the streaming mode, but other versions may be streaming.
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions