[all-commits] [llvm/llvm-project] 407832: [flang][hlfir] Add pass to inline elementals
Tom Eccles via All-commits
all-commits at lists.llvm.org
Thu May 18 04:04:44 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 407832db60c6f51ec5d9e5160670ee9756a340af
https://github.com/llvm/llvm-project/commit/407832db60c6f51ec5d9e5160670ee9756a340af
Author: Tom Eccles <tom.eccles at arm.com>
Date: 2023-05-18 (Thu, 18 May 2023)
Changed paths:
M flang/include/flang/Optimizer/HLFIR/HLFIROps.td
M flang/include/flang/Optimizer/HLFIR/Passes.h
M flang/include/flang/Optimizer/HLFIR/Passes.td
M flang/include/flang/Tools/CLOptions.inc
M flang/lib/Optimizer/HLFIR/Transforms/CMakeLists.txt
A flang/lib/Optimizer/HLFIR/Transforms/InlineElementals.cpp
M flang/test/Driver/mlir-debug-pass-pipeline.f90
M flang/test/Driver/mlir-pass-pipeline.f90
M flang/test/Fir/basic-program.fir
A flang/test/HLFIR/inline-elemental.fir
Log Message:
-----------
[flang][hlfir] Add pass to inline elementals
Implement hlfir.elemental inlining as proposed in
flang/docs/HighLevelFIR.md.
This is a separate pass to make the code easier to understand. One
alternative would have been to modify the hlfir.elemental lowering in
the HLFIR bufferization pass.
Currently, a hlfir.elemental can only be inlined once; if there are
more uses, the existing bufferization is used instead.
Usage of mlir::applyPatternsAndFoldGreedily was suggested by @jeanPerier
Differential Revision: https://reviews.llvm.org/D149258
Commit: c01937296b01f512e9074730e04ad0bedb40d089
https://github.com/llvm/llvm-project/commit/c01937296b01f512e9074730e04ad0bedb40d089
Author: Tom Eccles <tom.eccles at arm.com>
Date: 2023-05-18 (Thu, 18 May 2023)
Changed paths:
A flang/include/flang/Runtime/temporary-stack.h
M flang/runtime/CMakeLists.txt
A flang/runtime/temporary-stack.cpp
M flang/unittests/Runtime/CMakeLists.txt
A flang/unittests/Runtime/TemporaryStack.cpp
Log Message:
-----------
[flang][runtime] Add dynamically allocated temporary storage
These functions will be used as part of the HLFIR lowering for
forall/where. The contents of the API were requested by @jeanPerier.
The API is designed around that use case, assuming that the caller knows
through some side channel what size to allocate for boxes returned from
the pop() function.
Differential Revision: https://reviews.llvm.org/D150050
Compare: https://github.com/llvm/llvm-project/compare/c7dbe326dff8...c01937296b01
More information about the All-commits
mailing list