|
Revision tags: llvmorg-20.1.0, llvmorg-20.1.0-rc3, llvmorg-20.1.0-rc2, llvmorg-20.1.0-rc1, llvmorg-21-init, 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, 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, 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, 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, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6, llvmorg-14.0.5, llvmorg-14.0.4 |
|
| #
e141e719 |
| 11-May-2022 |
Peter Klausler <[email protected]> |
[flang] Fix character length calculation for Unicode component
The character length value in the derived type component information table entry is already in units of characters, not bytes, so don't
[flang] Fix character length calculation for Unicode component
The character length value in the derived type component information table entry is already in units of characters, not bytes, so don't divide by the per-character byte size.
Differential Revision: https://reviews.llvm.org/D126139
show more ...
|
|
Revision tags: llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2 |
|
| #
07b9a445 |
| 11-Feb-2022 |
Peter Klausler <[email protected]> |
[flang] Allow for deferred-length character in EstablishDescriptor
When the runtime is initializing an instance of a derived type, don't crash if an allocatable character component has deferred leng
[flang] Allow for deferred-length character in EstablishDescriptor
When the runtime is initializing an instance of a derived type, don't crash if an allocatable character component has deferred length.
Differential Revision: https://reviews.llvm.org/D119731
show more ...
|
|
Revision tags: llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1 |
|
| #
6d44387e |
| 20-Oct-2021 |
peter klausler <[email protected]> |
[flang] Make subscript list argument a nullable pointer
Component::CreatePointerDescriptor unconditionally expects a vector of subscripts to be passed as an argument, but is called from NAMELIST inp
[flang] Make subscript list argument a nullable pointer
Component::CreatePointerDescriptor unconditionally expects a vector of subscripts to be passed as an argument, but is called from NAMELIST input with a null pointer. Make that argument a nullable pointer, move it to the end of the argument list, and give it a default value of nullptr.
Differential Revision: https://reviews.llvm.org/D113312
show more ...
|
|
Revision tags: llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1 |
|
| #
65f52904 |
| 29-Jul-2021 |
peter klausler <[email protected]> |
[flang] Implement runtime Assign()
Define an API for, and implement, runtime support for arbitrary assignment of one descriptor's data to another, with full support for (re)allocation of allocatable
[flang] Implement runtime Assign()
Define an API for, and implement, runtime support for arbitrary assignment of one descriptor's data to another, with full support for (re)allocation of allocatables with finalization when necessary, user-defined derived type assignment TBP calls, and intrinsic (default) componentwise assignment of derived type instances with allocation of automatic components. Also clean up API and implementation of finalization/destruction using knowledge gained while studying edge cases for assignment in the 2018 standard.
The look-up procedure for special procedure bindings in derived types has been optimized from O(N) to O(1) since it will probably matter more. This required some analysis in runtime derived type description table construction in semantics and some changes to the table schemata.
Executable Fortran tests have been developed; they'll be added to the test base once they can be lowered and run by f18.
Differential Revision: https://reviews.llvm.org/D107678
show more ...
|
|
Revision tags: llvmorg-14-init |
|
| #
13e08de9 |
| 21-Jul-2021 |
peter klausler <[email protected]> |
[flang] Two tweaks to mollify buildbots
One test's expected output needs adjustment, and one new compiler warning needs to be silenced.
|
| #
a48e4168 |
| 19-Jul-2021 |
peter klausler <[email protected]> |
[flang] Run-time derived type initialization and destruction
Use derived type information tables to drive default component initialization (when needed), component destruction, and calls to final su
[flang] Run-time derived type initialization and destruction
Use derived type information tables to drive default component initialization (when needed), component destruction, and calls to final subroutines. Perform these operations automatically for ALLOCATE()/DEALLOCATE() APIs for allocatables, automatics, and pointers. Add APIs for use in lowering to perform these operations for non-allocatable/automatic non-pointer variables. Data pointer component initialization supports arbitrary constant designators, a F'2008 feature, which may be a first for Fortran implementations.
Differential Revision: https://reviews.llvm.org/D106297
show more ...
|
|
Revision tags: llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3 |
|
| #
43fadefb |
| 25-Jun-2021 |
peter klausler <[email protected]> |
[flang] Implement user-defined derived type runtime I/O
With derived type description tables now available to the runtime library, it is possible to implement the concept of "child" I/O statements i
[flang] Implement user-defined derived type runtime I/O
With derived type description tables now available to the runtime library, it is possible to implement the concept of "child" I/O statements in the runtime and use them to convert instances of derived type I/O data transfers into calls to user-defined subroutines when they have been specified for a type. (See Fortran 2018, subclauses 12.6.4.8 & 13.7.6).
- Support formatted, list-directed, and NAMELIST transfers to internal parent units; support these, and unformatted transfers, for external parent units. - Support nested child defined derived type I/O. - Parse DT'foo'(v-list) FORMAT data edit descriptors and passes their strings &/or v-list values as arguments to the defined formatted I/O routines. - Fix problems with this feature encountered in semantics and FORMAT valiation during development and end-to-end testing. - Convert typeInfo::SpecialBinding from a struct to a class after adding a member function.
Differential Revision: https://reviews.llvm.org/D104930
show more ...
|
| #
b3c1f53c |
| 18-Jun-2021 |
peter klausler <[email protected]> |
[flang] Recode a switch() to dodge a sketchy warning
One of the buildbots uses a compiler (can't tell which) that doesn't approve of a "default:" in a switch statement whose cases appear to complete
[flang] Recode a switch() to dodge a sketchy warning
One of the buildbots uses a compiler (can't tell which) that doesn't approve of a "default:" in a switch statement whose cases appear to completely cover all possible values of an enum class. But this switch is in raw data dumping code that needs to allow for incorrect values in memory. So rewrite it as a cascade of if statements; performance doesn't matter here.
show more ...
|
| #
79caf69c |
| 17-Jun-2021 |
peter klausler <[email protected]> |
[flang] Runtime implementation for default derived type formatted I/O
This is *not* user-defined derived type I/O, but rather Fortran's built-in capabilities for using derived type data in I/O lists
[flang] Runtime implementation for default derived type formatted I/O
This is *not* user-defined derived type I/O, but rather Fortran's built-in capabilities for using derived type data in I/O lists and NAMELIST groups.
This feature depends on having the derived type description tables that are created by Semantics available, passed through compilation as initialized static objects to which pointers can be targeted in the descriptors of I/O list items and NAMELIST groups.
NAMELIST processing now handles component references on input (e.g., "&GROUP x%component = 123 /").
The C++ perspectives of the derived type information records were transformed into proper classes when it was necessary to add member functions to them.
The code in Semantics that generates derived type information was changed to emit derived type components in component order, not alphabetic order.
Differential Revision: https://reviews.llvm.org/D104485
show more ...
|