|
Revision tags: llvmorg-21-init |
|
| #
12ba74e1 |
| 16-Jan-2025 |
Valentin Clement (バレンタイン クレメン) <clementval@gmail.com> |
[flang] Do not produce result for void runtime call (#123155)
Runtime function call to a void function are producing a ssa value
because the FunctionType result is set to NoneType with is later
tr
[flang] Do not produce result for void runtime call (#123155)
Runtime function call to a void function are producing a ssa value
because the FunctionType result is set to NoneType with is later
translated to a empty struct. This is not an issue when going to LLVM IR
but it breaks when lowering a gpu module to PTX. This patch update the
RTModel to correctly set the FunctionType result type to nothing.
This is one runtime call before this patch at the LLVM IR dialect step.
```
%45 = llvm.call @_FortranAAssign(%arg0, %1, %44, %4) : (!llvm.ptr, !llvm.ptr, !llvm.ptr, i32) -> !llvm.struct<()>
```
After the patch the call would be correctly formed
```
llvm.call @_FortranAAssign(%arg0, %1, %44, %4) : (!llvm.ptr, !llvm.ptr, !llvm.ptr, i32) -> ()
```
Without the patch it would lead to error like:
```
ptxas /tmp/mlir-cuda_device_mod-nvptx64-nvidia-cuda-sm_60-e804b6.ptx, line 10; error : Output parameter cannot be an incomplete array.
ptxas /tmp/mlir-cuda_device_mod-nvptx64-nvidia-cuda-sm_60-e804b6.ptx, line 125; error : Call has wrong number of parameters
```
The change is pretty much mechanical.
show more ...
|
|
Revision tags: llvmorg-19.1.7, llvmorg-19.1.6, 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, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2 |
|
| #
d0829fbd |
| 19-Mar-2024 |
jeanPerier <jperier@nvidia.com> |
[flang] Enable polymorphic lowering by default (#83285)
Polymorphic entity lowering status is good. The main remaining TODO is
to allow lowering of vector subscripted polymorphic entity, but this
[flang] Enable polymorphic lowering by default (#83285)
Polymorphic entity lowering status is good. The main remaining TODO is
to allow lowering of vector subscripted polymorphic entity, but this
does not deserve blocking all application using polymorphism.
Remove experimental option and enable lowering of polymorphic entity by
default.
show more ...
|
|
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, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5 |
|
| #
f35f863a |
| 13-Nov-2023 |
jeanPerier <jperier@nvidia.com> |
[flang][NFC] Use hlfir=false and flang-deprecated-no-hlfir in legacy tests (#71957)
Patch 2/3 of the transition step 1 described in
https://discourse.llvm.org/t/rfc-enabling-the-hlfir-lowering-by
[flang][NFC] Use hlfir=false and flang-deprecated-no-hlfir in legacy tests (#71957)
Patch 2/3 of the transition step 1 described in
https://discourse.llvm.org/t/rfc-enabling-the-hlfir-lowering-by-default/72778/7.
All the modified tests are still here since coverage for the direct
lowering to FIR was still needed while it was default. Some already have
an HLFIR version, some have not and will need to be ported in step 2
described in the RFC.
Note that another 147 lit tests use -emit-fir/-emit-llvm outputs but do
not need a flag since the HLFIR/no HLFIR output is the same for what is
being tested.
show more ...
|
|
Revision tags: llvmorg-17.0.4, llvmorg-17.0.3 |
|
| #
e8cc230e |
| 11-Oct-2023 |
jeanPerier <jperier@nvidia.com> |
[flang] Use object before converts in fir.dispatch (#68589)
In case of small interface mismatches between a function on the caller
and callee side, lowering insert converts. These are very often no
[flang] Use object before converts in fir.dispatch (#68589)
In case of small interface mismatches between a function on the caller
and callee side, lowering insert converts. These are very often no-ops
at runtime (casting a descriptor to a descriptor), but they matter in
the strongly type IR.
The IR type of an object argument of a fir.dispatch must be the one of
the object, not the one of the callee side dummy, which may differ in
case of mismatches. Otherwise, the codgeneration of fir.dispatch cannot
succeed (it will not access the right binding tables).
show more ...
|
|
Revision tags: 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, 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, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init |
|
| #
9f1bb307 |
| 12-Jan-2023 |
Valentin Clement <clementval@gmail.com> |
[flang] Carry the whole polymorphic box in PolymorphicValue
Until now, only the address of the type descriptor was hold in a PolymorphicValue. In some cases, the element size and the type code are a
[flang] Carry the whole polymorphic box in PolymorphicValue
Until now, only the address of the type descriptor was hold in a PolymorphicValue. In some cases, the element size and the type code are also needed when creating new polymorphic descriptors from an element of a polymorphic entity.
This patch updates PolymorphicValue to carry the source descriptor from which the element is extracted. The source descriptor is then used when emboxing the element to a new polymorphic descriptor.
This simplify the code done in D141274 and will be used when creating polymorphic temporary as well.
Reviewed By: jeanPerier, PeteSteinfeld
Differential Revision: https://reviews.llvm.org/D141609
show more ...
|
|
Revision tags: llvmorg-15.0.7 |
|
| #
40cb4fd0 |
| 12-Dec-2022 |
Valentin Clement <clementval@gmail.com> |
[flang] Perform polymorphic pointer association with runtime call
pointer association to a polymorphic pointer needs to potentially update the element size in the descriptor. Update the pointer asso
[flang] Perform polymorphic pointer association with runtime call
pointer association to a polymorphic pointer needs to potentially update the element size in the descriptor. Update the pointer association to polymoprhic pointer with a runtime call to PointerAssociate.
Reviewed By: jeanPerier
Differential Revision: https://reviews.llvm.org/D139825
show more ...
|
|
Revision tags: llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4 |
|
| #
880b37f1 |
| 01-Nov-2022 |
Valentin Clement <clementval@gmail.com> |
[flang] Handle pointer assignment with polymorphic entities
This patch forces pointer and allocatable polymorphic entities to be tracked as descriptor. It also enables the pointer assignment between
[flang] Handle pointer assignment with polymorphic entities
This patch forces pointer and allocatable polymorphic entities to be tracked as descriptor. It also enables the pointer assignment between polymorphic entities. Pointer association between a non-polymorphic pointer and a polyrmophic target might require some more work as per 10.2.2.3 point 1.
Reviewed By: PeteSteinfeld
Differential Revision: https://reviews.llvm.org/D137150
show more ...
|