aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/Local.cpp
diff options
context:
space:
mode:
authorjeanPerier <jperier@nvidia.com>2023-12-12 13:20:42 +0100
committerGitHub <noreply@github.com>2023-12-12 13:20:42 +0100
commitdfb7d56a05ca3e36a792a35bd89e4fe25473da04 (patch)
treee6e9b302d7c92d611ee229ffab7bf70800792724 /llvm/lib/Transforms/Utils/Local.cpp
parent0c2b6a022595c55ba3d091e3014b5d3b0e213259 (diff)
downloadllvm-dfb7d56a05ca3e36a792a35bd89e4fe25473da04.zip
llvm-dfb7d56a05ca3e36a792a35bd89e4fe25473da04.tar.gz
llvm-dfb7d56a05ca3e36a792a35bd89e4fe25473da04.tar.bz2
[flang] Lower VALUE derived types in BIND(C) interface (#74847)
VALUE derived type are passed by reference outside of BIND(C) interface. The ABI is much simpler and it is possible for these arguments to have the OPTIONAL attribute. In the BIND(C) context, these arguments must follow the C ABI for struct, which may lead the data to be passed in register. OPTIONAL is also forbidden for those arguments, so it is safe to directly use the fir.type<T> type for the func.func argument. Codegen is in charge of later applying the C passing ABI according to the target (https://github.com/llvm/llvm-project/pull/74829).
Diffstat (limited to 'llvm/lib/Transforms/Utils/Local.cpp')
0 files changed, 0 insertions, 0 deletions