summaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
diff options
context:
space:
mode:
authorKiran Chandramohan <kiran.chandramohan@arm.com>2022-02-22 10:12:04 +0000
committerKiran Chandramohan <kiran.chandramohan@arm.com>2022-02-22 12:46:35 +0000
commitf57627f544665de2b2e246226b0aa3e4a25491e5 (patch)
tree5dd9f7dc5e8832d4a8a63d4689f12077e0217ba2 /llvm/lib/Bitcode/Reader/BitcodeReader.cpp
parent380ff31d831610389b9cd5574fdf91431e482171 (diff)
[Flang] Initial patch to lower a Fortran intrinsic
This patch brings in some initial changes for lowering Fortran intrinsics. Intrinsics are generally lowered to a mix of FIR and MLIR operations, runtime calls or LLVM intrinsics. This patch particularly brings in the lowering of the Fortran `andi` intrinsic to `arith.andi` in MLIR. The significant changes are in ConvertExpr.cpp and IntrinsicCall.cpp. Intrinsic functions occur as part of expressions. Lowering deals with this in ConvertExpr.cpp in `genval(const Fortran::evaluate::FunctionRef<A> &funcRef)`. The code in the above mentioned function kicks of a sequence of calls that ultimately results in a call to the `genIand ` function in IntrinsicCall.cpp which creates the MLIR `arith.andi` operation. A few tests are also included. Note: Generally intrinsics like `iand` can occur in array (elemental) context, but since that part is not fully supported in lowering, tests are only added for the scalar context. This patch is part of upstreaming from the fir-dev branch of https://github.com/flang-compiler/f18-llvm-project. Reviewed By: clementval Differential Revision: https://reviews.llvm.org/D119990 Co-authored-by: Jean Perier <jperier@nvidia.com> Co-authored-by: Eric Schweitz <eschweitz@nvidia.com> Co-authored-by: zacharyselk <zrselk@gmail.com> Co-authored-by: V Donaldson <vdonaldson@nvidia.com> Co-authored-by: Valentin Clement <clementval@gmail.com>
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
0 files changed, 0 insertions, 0 deletions