[all-commits] [llvm/llvm-project] d2d213: [flang][hlfir][NFC] refactor transformational intr...
Tom Eccles via All-commits
all-commits at lists.llvm.org
Tue Jul 4 02:35:38 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: d2d213018df6d2d6e8b9c4f6d88d52ee5a94fb49
https://github.com/llvm/llvm-project/commit/d2d213018df6d2d6e8b9c4f6d88d52ee5a94fb49
Author: Tom Eccles <tom.eccles at arm.com>
Date: 2023-07-04 (Tue, 04 Jul 2023)
Changed paths:
A flang/include/flang/Lower/HlfirIntrinsics.h
M flang/lib/Lower/CMakeLists.txt
M flang/lib/Lower/ConvertCall.cpp
A flang/lib/Lower/HlfirIntrinsics.cpp
Log Message:
-----------
[flang][hlfir][NFC] refactor transformational intrinsic lowering
The old code had overgrown itself and become difficult to read and
modify. I've rewritten it and moved it into its own translation unit.
I moved PreparedActualArgument to the header file for the
transformational intrinsic lowering. Logically, it belongs in
ConvertCall.h, but putting it there would create a circular dependency
between HlfirIntrinsics and ConvertCall.
Differential Revision: https://reviews.llvm.org/D154235
Commit: be4518f230092b81f2690e860d028df4573d1148
https://github.com/llvm/llvm-project/commit/be4518f230092b81f2690e860d028df4573d1148
Author: Tom Eccles <tom.eccles at arm.com>
Date: 2023-07-04 (Tue, 04 Jul 2023)
Changed paths:
M flang/lib/Lower/HlfirIntrinsics.cpp
M flang/test/Lower/HLFIR/all.f90
M flang/test/Lower/HLFIR/any.f90
M flang/test/Lower/HLFIR/count.f90
M flang/test/Lower/HLFIR/dot_product.f90
M flang/test/Lower/HLFIR/matmul.f90
M flang/test/Lower/HLFIR/product.f90
M flang/test/Lower/HLFIR/sum.f90
M flang/test/Lower/HLFIR/transpose.f90
Log Message:
-----------
[flang][hlfir] support optional args for intrinsic ops
This also adds support for allocatable non-optional arguments.
Of the transformational intrinsics which currently have their own hlfir
operations, all of the dynamically optional arguments are lowered as
boxes, so that is all that is implemented for now.
One alternative approach would have been to deal with the dynamically
optional arguments when lowering to FIR runtime calls. I decided not to
do this so that any passes working on the intrinsic operations would not
have to know about and handle the dynamically optional arguments.
Depends on D154235
Differential Revision: https://reviews.llvm.org/D154236
Commit: 1b74fadd9e2eb5ec7ff98996a91f652fa50f47e4
https://github.com/llvm/llvm-project/commit/1b74fadd9e2eb5ec7ff98996a91f652fa50f47e4
Author: Tom Eccles <tom.eccles at arm.com>
Date: 2023-07-04 (Tue, 04 Jul 2023)
Changed paths:
M flang/lib/Lower/ConvertCall.cpp
A flang/test/Lower/HLFIR/intrinsic-dynamically-optional.f90
Log Message:
-----------
[flang][hlfir] intrinsic dynamically optional arguments
This adds support for dynamically optional arguments for intrinsics
which do not have their own hlfir operations.
The functions for processing these arguments are mostly the same as the
equivalent functions in ConvertExpr.cpp. I chose not to share
implementations so that HLFIR helpers can be used here. Presumably
ConvertExpr.cpp will go away one day.
Depends on D154236
Differential Revision: https://reviews.llvm.org/D154237
Commit: 1538ad9fc0140584c1569220f8c0b8c1c75c6578
https://github.com/llvm/llvm-project/commit/1538ad9fc0140584c1569220f8c0b8c1c75c6578
Author: Tom Eccles <tom.eccles at arm.com>
Date: 2023-07-04 (Tue, 04 Jul 2023)
Changed paths:
M flang/lib/Lower/ConvertCall.cpp
M flang/test/Lower/HLFIR/intrinsic-subroutines.f90
Log Message:
-----------
[flang][hlfir] fix elemental subroutine calls
genElementalCall can return a null option when lowering elemental
subroutine calls (as there is no return value). Therefore
std::option::value should not be used as it will cause an
assertion failure.
This fixes uses of the mvbits intrinsic with array arguments, as used in
the gfortran test suite.
Differential Revision: https://reviews.llvm.org/D154340
Compare: https://github.com/llvm/llvm-project/compare/e13582e9e345...1538ad9fc014
More information about the All-commits
mailing list