[all-commits] [llvm/llvm-project] 3c700d: [flang] Extract hlfir.assign inlining from opt-buf...
Slava Zakharin via All-commits
all-commits at lists.llvm.org
Fri Jan 3 08:33:36 PST 2025
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 3c700d131a35ce4b0063a4688dce4a0cb739ca83
https://github.com/llvm/llvm-project/commit/3c700d131a35ce4b0063a4688dce4a0cb739ca83
Author: Slava Zakharin <szakharin at nvidia.com>
Date: 2025-01-03 (Fri, 03 Jan 2025)
Changed paths:
M flang/include/flang/Optimizer/HLFIR/Passes.td
M flang/lib/Optimizer/HLFIR/Transforms/CMakeLists.txt
A flang/lib/Optimizer/HLFIR/Transforms/InlineHLFIRAssign.cpp
M flang/lib/Optimizer/HLFIR/Transforms/OptimizedBufferization.cpp
M flang/lib/Optimizer/Passes/Pipelines.cpp
M flang/test/Driver/mlir-pass-pipeline.f90
M flang/test/Fir/basic-program.fir
A flang/test/HLFIR/inline-hlfir-assign.fir
M flang/test/HLFIR/maxloc-elemental.fir
M flang/test/HLFIR/minloc-elemental.fir
M flang/test/HLFIR/opt-bufferization-eval_in_mem.fir
M flang/test/HLFIR/opt-bufferization.fir
R flang/test/HLFIR/opt-variable-assign.fir
Log Message:
-----------
[flang] Extract hlfir.assign inlining from opt-bufferization. (#121544)
Optimized bufferization can transform hlfir.assign into a loop
nest doing element per element assignment, but it avoids
doing so for RHS that is hlfir.expr. This is done to let
ElementalAssignBufferization pattern to try to do a better job.
This patch moves the hlfir.assign inlining after opt-bufferization,
and enables it for hlfir.expr RHS.
The hlfir.expr RHS cases are present in tonto, and this patch
results in some nice improvements. Note that those cases
are handled by other compilers also using array temporaries,
so this patch seems to just get rid of the Assign runtime
overhead/inefficiency.
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list