Revision tags: llvmorg-21-init |
|
#
16e9601e |
| 27-Jan-2025 |
ssijaric-nv <ssijaric@nvidia.com> |
[Flang] Adjust the trampoline size for AArch64 and PPC (#118678)
Set the trampoline size to match that in compiler-rt/lib/builtins/trampoline_setup.c
and AArch64 and PPC lowering.
|
#
df3bc54e |
| 24-Jan-2025 |
Kazu Hirata <kazu@google.com> |
[flang] Avoid repeated hash lookups (NFC) (#124230)
|
Revision tags: llvmorg-19.1.7 |
|
#
79e788d0 |
| 13-Jan-2025 |
Kelvin Li <kkwli@users.noreply.github.com> |
[flang][AIX] BIND(C) derived type alignment for AIX (#121505)
This patch is to handle the alignment requirement for the `bind(c)`
derived type component that is real type and larger than 4 bytes. T
[flang][AIX] BIND(C) derived type alignment for AIX (#121505)
This patch is to handle the alignment requirement for the `bind(c)`
derived type component that is real type and larger than 4 bytes. The
alignment of such component is 4-byte.
show more ...
|
#
3ace6851 |
| 03-Jan-2025 |
Matthias Springer <me@m-sp.org> |
[mlir][Transforms] Support 1:N mappings in `ConversionValueMapping` (#116524)
This commit updates the internal `ConversionValueMapping` data structure
in the dialect conversion driver to support 1:
[mlir][Transforms] Support 1:N mappings in `ConversionValueMapping` (#116524)
This commit updates the internal `ConversionValueMapping` data structure
in the dialect conversion driver to support 1:N replacements. This is
the last major commit for adding 1:N support to the dialect conversion
driver.
Since #116470, the infrastructure already supports 1:N replacements. But
the `ConversionValueMapping` still stored 1:1 value mappings. To that
end, the driver inserted temporary argument materializations (converting
N SSA values into 1 value). This is no longer the case. Argument
materializations are now entirely gone. (They will be deleted from the
type converter after some time, when we delete the old 1:N dialect
conversion driver.)
Note for LLVM integration: Replace all occurrences of
`addArgumentMaterialization` (except for 1:N dialect conversion passes)
with `addSourceMaterialization`.
---------
Co-authored-by: Markus Böck <markus.boeck02@gmail.com>
show more ...
|
Revision tags: llvmorg-19.1.6 |
|
#
4e59721c |
| 09-Dec-2024 |
Kiran Chandramohan <kiran.chandramohan@arm.com> |
[Flang][OpenMP] Make boxed procedure pass aware of OpenMP private ops (#118261)
Fixes #109727
|
Revision tags: llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7 |
|
#
c0e6dd1e |
| 04-Jun-2024 |
Tom Eccles <tom.eccles@arm.com> |
[flang][CodeGen][NFC] Reduce BoxedProcedurePass boilerplate (#94200)
The pass constructor can be generated automatically by tablegen.
The pass is module-level and iterates over every operation wi
[flang][CodeGen][NFC] Reduce BoxedProcedurePass boilerplate (#94200)
The pass constructor can be generated automatically by tablegen.
The pass is module-level and iterates over every operation within the
module so it should not need any changes to support alternative top
level operations.
show more ...
|
Revision tags: llvmorg-18.1.6, llvmorg-18.1.5 |
|
#
fac349a1 |
| 28-Apr-2024 |
Christian Sigg <chsigg@users.noreply.github.com> |
Reapply "[mlir] Mark `isa/dyn_cast/cast/...` member functions depreca… (#90406)
…ted. (#89998)" (#90250)
This partially reverts commit 7aedd7dc754c74a49fe84ed2640e269c25414087.
This change rem
Reapply "[mlir] Mark `isa/dyn_cast/cast/...` member functions depreca… (#90406)
…ted. (#89998)" (#90250)
This partially reverts commit 7aedd7dc754c74a49fe84ed2640e269c25414087.
This change removes calls to the deprecated member functions. It does
not mark the functions deprecated yet and does not disable the
deprecation warning in TypeSwitch. This seems to cause problems with
MSVC.
show more ...
|
#
7aedd7dc |
| 26-Apr-2024 |
dyung <douglas.yung@sony.com> |
Revert "[mlir] Mark `isa/dyn_cast/cast/...` member functions deprecated. (#89998)" (#90250)
This reverts commit 950b7ce0b88318f9099e9a7c9817d224ebdc6337.
This change is causing build failures on
Revert "[mlir] Mark `isa/dyn_cast/cast/...` member functions deprecated. (#89998)" (#90250)
This reverts commit 950b7ce0b88318f9099e9a7c9817d224ebdc6337.
This change is causing build failures on a bot
https://lab.llvm.org/buildbot/#/builders/216/builds/38157
show more ...
|
#
950b7ce0 |
| 26-Apr-2024 |
Christian Sigg <chsigg@users.noreply.github.com> |
[mlir] Mark `isa/dyn_cast/cast/...` member functions deprecated. (#89998)
See https://mlir.llvm.org/deprecation and
https://discourse.llvm.org/t/preferred-casting-style-going-forward.
|
Revision tags: llvmorg-18.1.4, llvmorg-18.1.3 |
|
#
b3316647 |
| 25-Mar-2024 |
Jie Fu <jiefu@tencent.com> |
[flang] Fix -Wunused-variable in BoxedProcedure.cpp (NFC)
llvm-project/flang/lib/Optimizer/CodeGen/BoxedProcedure.cpp:157:12: error: unused variable 'it' [-Werror,-Wunused-variable] auto it =
[flang] Fix -Wunused-variable in BoxedProcedure.cpp (NFC)
llvm-project/flang/lib/Optimizer/CodeGen/BoxedProcedure.cpp:157:12: error: unused variable 'it' [-Werror,-Wunused-variable] auto it = convertedTypes.try_emplace(ty, rec); ^ 1 error generated.
show more ...
|
#
a0e9a8da |
| 25-Mar-2024 |
jeanPerier <jperier@nvidia.com> |
[flang][NFC] speedup BoxedProcedure for derived types with many components (#86144)
This patch speeds up the compilation time of the example in
https://github.com/llvm/llvm-project/issues/76478#iss
[flang][NFC] speedup BoxedProcedure for derived types with many components (#86144)
This patch speeds up the compilation time of the example in
https://github.com/llvm/llvm-project/issues/76478#issuecomment-2011023289
from 2 minutes with my builds to about 2 seconds.
MLIR timers showed more than 98% of the time was spend in BoxedProcedure
trying to figure out if a type needs to be converted.
This is because walking the fir.type members is very expansive for types
containing many components and/or components with many sub-components.
Increase the caching time of visited types from "the type being visited"
to "the whole pass". Use DenseMap since it is not ok anymore to assume
this container will only have a few elements.
show more ...
|
Revision tags: llvmorg-18.1.2 |
|
#
546f32df |
| 11-Mar-2024 |
Krzysztof Parzyszek <Krzysztof.Parzyszek@amd.com> |
[flang][CodeGen] Fix use-after-free in BoxedProcedurePass (#84376)
Avoid inspecting an operation that has been replaced.
This was detected by address sanitizer.
|
#
65524fcb |
| 08-Mar-2024 |
Krzysztof Parzyszek <Krzysztof.Parzyszek@amd.com> |
[flang][CodeGen] Replace correct op in BoxedProcedurePass (#84375)
|
Revision tags: llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1 |
|
#
df3f0eee |
| 29-Jan-2024 |
jeanPerier <jperier@nvidia.com> |
[flang] Fix invalid iterator erasure in boxed-procedure pass (#79830)
The code in BoxedProcedureRewrite was erasing the mappings <old type,
new type> once "new type" was fully translated. This was
[flang] Fix invalid iterator erasure in boxed-procedure pass (#79830)
The code in BoxedProcedureRewrite was erasing the mappings <old type,
new type> once "new type" was fully translated. This was done in an
invalid way because the map was an llvm::SmallMapVector that do not have
stable iterators, and new items were added to the map between the
creation of the iterator and its erasure.
It is anyway not needed and expensive to erase the types (see
llvm::MapVector note), the cache can be used for the whole pass, which
is very beneficial in the context of an apps using "big derived types"
(dozens of components/parents).
show more ...
|
#
a15ebe02 |
| 25-Jan-2024 |
jeanPerier <jperier@nvidia.com> |
[flang] fix procedure fir.box_addr identification in boxed-procedure (#79290)
The pass was mistakenly identifying a fir.box_addr on a
fir.box/fir.class of a derived type with procedure pointer comp
[flang] fix procedure fir.box_addr identification in boxed-procedure (#79290)
The pass was mistakenly identifying a fir.box_addr on a
fir.box/fir.class of a derived type with procedure pointer components as
being a fir.box_addr on a procedure.
Simply check if the input type is a fir.box_proc or function type (if
input already rewritten) and insert convert only in this case.
This caused "invalid fir.convert" internal error.
show more ...
|
Revision tags: llvmorg-19-init |
|
#
5fcf907b |
| 17-Jan-2024 |
Matthias Springer <me@m-sp.org> |
[mlir][IR] Rename "update root" to "modify op" in rewriter API (#78260)
This commit renames 4 pattern rewriter API functions:
* `updateRootInPlace` -> `modifyOpInPlace`
* `startRootUpdate` -> `sta
[mlir][IR] Rename "update root" to "modify op" in rewriter API (#78260)
This commit renames 4 pattern rewriter API functions:
* `updateRootInPlace` -> `modifyOpInPlace`
* `startRootUpdate` -> `startOpModification`
* `finalizeRootUpdate` -> `finalizeOpModification`
* `cancelRootUpdate` -> `cancelOpModification`
The term "root" is a misnomer. The root is the op that a rewrite pattern
matches against
(https://mlir.llvm.org/docs/PatternRewriter/#root-operation-name-optional).
A rewriter must be notified of all in-place op modifications, not just
in-place modifications of the root
(https://mlir.llvm.org/docs/PatternRewriter/#pattern-rewriter). The old
function names were confusing and have contributed to various broken
rewrite patterns.
Note: The new function names use the term "modify" instead of "update"
for consistency with the `RewriterBase::Listener` terminology
(`notifyOperationModified`).
show more ...
|
#
08e4386a |
| 15-Jan-2024 |
jeanPerier <jperier@nvidia.com> |
[flang][fir] update block argument types in boxed-procedure pass (#77914)
The boxed-procedure pass is lowering the fir.boxproc type. Although this
is not common, this types may end-up as block argu
[flang][fir] update block argument types in boxed-procedure pass (#77914)
The boxed-procedure pass is lowering the fir.boxproc type. Although this
is not common, this types may end-up as block arguments (or be part of
derived type that are block arguments).
Update the pass to update block argument types too.
show more ...
|
#
c373f581 |
| 19-Dec-2023 |
jeanPerier <jperier@nvidia.com> |
[flang] Lower procedure pointer components (#75453)
Lower procedure pointer components, except in the context of structure
constructor (left TODO).
Procedure pointer components lowering share mo
[flang] Lower procedure pointer components (#75453)
Lower procedure pointer components, except in the context of structure
constructor (left TODO).
Procedure pointer components lowering share most of the lowering logic
of procedure poionters with the following particularities:
- They are components, so an hlfir.designate must be generated to
retrieve the procedure pointer address from its derived type base.
- They may have a PASS argument. While there is no dispatching as with
type bound procedure, special care must be taken to retrieve the derived
type component base in this case since semantics placed it in the
argument list and not in the evaluate::ProcedureDesignator.
These components also bring a new level of recursive MLIR types since a
fir.type may now contain a component with an MLIR function type where
one of the argument is the fir.type itself. This required moving the
"derived type in construction" stackto the converter so that the object
and function type lowering utilities share the same state (currently the
function type utilty would end-up creating a new stack when lowering its
arguments, leading to infinite loops). The BoxedProcedurePass also
needed an update to deal with this recursive aspect.
show more ...
|
Revision tags: llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5 |
|
#
53cc33b0 |
| 01-Jun-2023 |
Tom Eccles <tom.eccles@arm.com> |
[flang] Store KindMapping by value in FirOpBuilder
Previously only a constant reference was stored in the FirOpBuilder. However, a lot of code was merged using
FirOpBuilder builder{rewriter, getKin
[flang] Store KindMapping by value in FirOpBuilder
Previously only a constant reference was stored in the FirOpBuilder. However, a lot of code was merged using
FirOpBuilder builder{rewriter, getKindMapping(mod)};
This is incorrect because the KindMapping returned will go out of scope as soon as FirOpBuilder's constructor had run. This led to an infinite loop running some tests using HLFIR (because the stack space containing the kind mapping was re-used and corrupted).
One solution would have just been to fix the incorrect call sites, however, as a large number of these had already made it past review, I decided to instead change FirOpBuilder to store its own copy of the KindMapping. This is not costly because nearly every time we construct a KindMapping is exclusively to construct a FirOpBuilder. To make this common pattern simpler, I added a new constructor to FirOpBuilder which calls getKindMapping().
Differential Revision: https://reviews.llvm.org/D151881
show more ...
|
Revision tags: llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4 |
|
#
b07ef9e7 |
| 09-Mar-2023 |
Renaud-K <rkauffmann@nvidia.com> |
Break circular dependency between FIR dialect and utilities
|
Revision tags: llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7 |
|
#
feb9d33a |
| 07-Dec-2022 |
Peixin Qiao <qiaopeixin@huawei.com> |
[flang] Support codegen for global procedure pointer
This supports the codegen for global procedure pointer in BoxedProcedure pass. Reset the boxproc type.
Reviewed By: jeanPerier
Differential Rev
[flang] Support codegen for global procedure pointer
This supports the codegen for global procedure pointer in BoxedProcedure pass. Reset the boxproc type.
Reviewed By: jeanPerier
Differential Revision: https://reviews.llvm.org/D138273
show more ...
|
#
7de3c03e |
| 07-Dec-2022 |
Peixin Qiao <qiaopeixin@huawei.com> |
[flang] Support codegen of procedure pointer component
This supports the codegen for procedure pointer component in BoxedProcedure pass. Also fix the FIR in ProcedurePointer.md so that all the cases
[flang] Support codegen of procedure pointer component
This supports the codegen for procedure pointer component in BoxedProcedure pass. Also fix the FIR in ProcedurePointer.md so that all the cases can be run using `tco` to generate the LLVM IR.
Reviewed By: jeanPerier
Differential Revision: https://reviews.llvm.org/D136842
show more ...
|
Revision tags: llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, working, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0 |
|
#
67d0d7ac |
| 31-Aug-2022 |
Michele Scuttari <michele.scuttari@outlook.com> |
[MLIR] Update pass declarations to new autogenerated files
The patch introduces the required changes to update the pass declarations and definitions to use the new autogenerated files and allow drop
[MLIR] Update pass declarations to new autogenerated files
The patch introduces the required changes to update the pass declarations and definitions to use the new autogenerated files and allow dropping the old infrastructure.
Reviewed By: mehdi_amini, rriddle
Differential Review: https://reviews.llvm.org/D132838
show more ...
|
#
039b969b |
| 30-Aug-2022 |
Michele Scuttari <michele.scuttari@outlook.com> |
Revert "[MLIR] Update pass declarations to new autogenerated files"
This reverts commit 2be8af8f0e0780901213b6fd3013a5268ddc3359.
|
#
2be8af8f |
| 30-Aug-2022 |
Michele Scuttari <michele.scuttari@outlook.com> |
[MLIR] Update pass declarations to new autogenerated files
The patch introduces the required changes to update the pass declarations and definitions to use the new autogenerated files and allow drop
[MLIR] Update pass declarations to new autogenerated files
The patch introduces the required changes to update the pass declarations and definitions to use the new autogenerated files and allow dropping the old infrastructure.
Reviewed By: mehdi_amini, rriddle
Differential Review: https://reviews.llvm.org/D132838
show more ...
|