|
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, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1 |
|
| #
bafbae23 |
| 16-Mar-2022 |
Peter Klausler <[email protected]> |
[flang] Initial UTF-8 support in runtime I/O
Implements UTF-8 encoding and decoding for external units with OPEN(ENCODING='UTF-8'). This encoding applies to default CHARACTER values that are not 7-
[flang] Initial UTF-8 support in runtime I/O
Implements UTF-8 encoding and decoding for external units with OPEN(ENCODING='UTF-8'). This encoding applies to default CHARACTER values that are not 7-bit ASCII as well as to the wide CHARACTER kinds 2 and 4. Basic testing is in place via direct calls to the runtime I/O APIs, but serious checkout awaits lowering support of the wide CHARACTER kinds.
Differential Revision: https://reviews.llvm.org/D122038
show more ...
|
|
Revision tags: llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2 |
|
| #
3a96446d |
| 17-Feb-2022 |
Peter Klausler <[email protected]> |
[flang] Honor RECL= in list-directed/namelist output
Advancement to new output lines was taking fixed-sized direct-access and internal character array element lengths into account, but not RECL= set
[flang] Honor RECL= in list-directed/namelist output
Advancement to new output lines was taking fixed-sized direct-access and internal character array element lengths into account, but not RECL= settings from OPEN statements.
Differential Revision: https://reviews.llvm.org/D120837
show more ...
|
|
Revision tags: llvmorg-14.0.0-rc1, llvmorg-15-init |
|
| #
9772dbba |
| 27-Jan-2022 |
Peter Klausler <[email protected]> |
[flang] Set right "inNamelist" flag
NAMELIST I/O was inconsistent in its choice of which set of I/O modes to set the "inNamelist" flag. The wrong choice was in the set of modes that are part of the
[flang] Set right "inNamelist" flag
NAMELIST I/O was inconsistent in its choice of which set of I/O modes to set the "inNamelist" flag. The wrong choice was in the set of modes that are part of the persistent state of an I/O connection; the right place is the set of modes that are reinitialized at the beginning of each I/O statement so that they can be modified by READ/WRITE control list specifiers and FORMAT control edit descriptors. Fix.
Differential Revision: https://reviews.llvm.org/D118745
show more ...
|
|
Revision tags: llvmorg-13.0.1, llvmorg-13.0.1-rc3 |
|
| #
896a543e |
| 20-Jan-2022 |
Peter Klausler <[email protected]> |
[flang] Support DECIMAL='COMMA' mode in namelist I/O
DECIMAL='COMMA' mode affects item separators, real editing, and complex editing.
Differential Revision: https://reviews.llvm.org/D117906
|
| #
d1123e36 |
| 13-Jan-2022 |
Peter Klausler <[email protected]> |
[flang] Extension: skip over NAMELIST groups
Implements a near-universal extension in which NAMELIST input will skip over unrelated namelist groups in the input stream until the group with the reque
[flang] Extension: skip over NAMELIST groups
Implements a near-universal extension in which NAMELIST input will skip over unrelated namelist groups in the input stream until the group with the requested name appears.
Differential Revision: https://reviews.llvm.org/D117843
show more ...
|
| #
922c29cc |
| 12-Jan-2022 |
Peter Klausler <[email protected]> |
[flang] Allow explicit '+' in NAMELIST input subscripts
Array subscripts and substring limits in NAMELIST input are allowed to bear an explicit plus sign.
Differential Revision: https://reviews.llv
[flang] Allow explicit '+' in NAMELIST input subscripts
Array subscripts and substring limits in NAMELIST input are allowed to bear an explicit plus sign.
Differential Revision: https://reviews.llvm.org/D117818
show more ...
|
|
Revision tags: llvmorg-13.0.1-rc2 |
|
| #
0ab17080 |
| 07-Jan-2022 |
Peter Klausler <[email protected]> |
[flang] Support substring references in NAMELIST input
Implements substring references into potentially partial CHARACTER scalars and array elements in NAMELIST input.
Differential Revision: https:
[flang] Support substring references in NAMELIST input
Implements substring references into potentially partial CHARACTER scalars and array elements in NAMELIST input.
Differential Revision: https://reviews.llvm.org/D117576
show more ...
|
|
Revision tags: 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 ...
|
| #
e7823608 |
| 03-Nov-2021 |
Peter Klausler <[email protected]> |
[flang] Complete the fix for NAMELIST look-ahead case
When processing the devious NAMELIST input
&group logarray = t t t = 666 /
for LOGICAL::logarray(3) and INTEGER::t, the runtime library
[flang] Complete the fix for NAMELIST look-ahead case
When processing the devious NAMELIST input
&group logarray = t t t = 666 /
for LOGICAL::logarray(3) and INTEGER::t, the runtime library needs to do some look-ahead on the input stream to make sure that the last "t" on the first line is a truth value rather than an item name -- which in this case it is. This look-ahead was implemented in a previous patch but only worked for internal input cases; this patch implements look-ahead capabilities for input from an external file, too (and also adjusts repeated list-directed input items to use this infrastructure, too).
Differential Revision: https://reviews.llvm.org/D113311
show more ...
|
| #
89a927c6 |
| 21-Oct-2021 |
peter klausler <[email protected]> |
[flang] Fix NAMELIST input bug with multiple subscript triplets
NAMELIST input can contain array subscripts with triplet notation. The calculation of the default effective stride for the constructed
[flang] Fix NAMELIST input bug with multiple subscript triplets
NAMELIST input can contain array subscripts with triplet notation. The calculation of the default effective stride for the constructed array descriptor was simply incorrect after the first dimension.
Differential Revision: https://reviews.llvm.org/D112347
show more ...
|
| #
b8452dba |
| 20-Oct-2021 |
peter klausler <[email protected]> |
[flang] Support NAMELIST input of short arrays
NAMELIST array input does not need to fully define an array. If another input item begins after at least one element, it ends input into the array and
[flang] Support NAMELIST input of short arrays
NAMELIST array input does not need to fully define an array. If another input item begins after at least one element, it ends input into the array and the remaining items are not modified.
The tricky part of supporting this feature is that it's not always easy to determine whether the next non-blank thing in the input is a value or the next item's name, esp. in the case of logical data where T and F can be names. E.g.,
&group logicalArray = t f f t = 1 /
should read three elements into "logicalArray" and then read an integer or real variable named "t".
So the I/O runtime has to do some look-ahead to determine whether the next thing in the input is a name followed by '=', '(', or '%'. Since the '=' may be on a later record, possibly with intervening NAMELIST comments, the runtime has to support a general form of saving and restoring its current position. The infrastructure in the I/O runtime already has to support repositioning for list-directed repetition, even on non-positionable input sources like terminals and sockets; this patch adds an internal RAII API to make it easier to save a position and then do arbitrary look-ahead.
Differential Revision: https://reviews.llvm.org/D112245
show more ...
|
|
Revision tags: llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3 |
|
| #
830c0b90 |
| 01-Sep-2021 |
Peter Klausler <[email protected]> |
[flang] Move runtime API headers to flang/include/flang/Runtime
Move the closure of the subset of flang/runtime/*.h header files that are referenced by source files outside flang/runtime (apart from
[flang] Move runtime API headers to flang/include/flang/Runtime
Move the closure of the subset of flang/runtime/*.h header files that are referenced by source files outside flang/runtime (apart from unit tests) into a new directory (flang/include/flang/Runtime) so that relative include paths into ../runtime need not be used.
flang/runtime/pgmath.h.inc is moved to flang/include/flang/Evaluate; it's not used by the runtime.
Differential Revision: https://reviews.llvm.org/D109107
show more ...
|
| #
651f58bf |
| 02-Sep-2021 |
Diana Picus <[email protected]> |
[flang] Remove *- C++ -* incantation from runtime .cpp files. NFC
We should only need to spell the language out in .h files.
Differential Revision: https://reviews.llvm.org/D109138
|
|
Revision tags: llvmorg-13.0.0-rc2 |
|
| #
4c15a970 |
| 13-Aug-2021 |
peter klausler <[email protected]> |
[flang] Add missing call to BeginReadingRecord()
NAMELIST input needs to start with a call to BeginReadingRecord(). Internal unit input doesn't care (so unit tests were passing), but external unit i
[flang] Add missing call to BeginReadingRecord()
NAMELIST input needs to start with a call to BeginReadingRecord(). Internal unit input doesn't care (so unit tests were passing), but external unit input does need the call and will assert without it.
Differential Revision: https://reviews.llvm.org/D108051
show more ...
|
|
Revision tags: llvmorg-13.0.0-rc1, llvmorg-14-init |
|
| #
e093cbb7 |
| 21-Jul-2021 |
peter klausler <[email protected]> |
[flang] Runtime: Reset list-directed input state for each NAMELIST item
NAMELIST I/O formatting uses the runtime infrastructure for list-directed I/O. List-directed input processing has same state
[flang] Runtime: Reset list-directed input state for each NAMELIST item
NAMELIST I/O formatting uses the runtime infrastructure for list-directed I/O. List-directed input processing has same state that requires reinitialization for each successive NAMELIST input item. This patch fixes bugs with "null" items and repetition counts on NAMELIST input items after the first in the group.
Differential Revision: https://reviews.llvm.org/D106694
show more ...
|
| #
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 |
|
| #
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 ...
|
|
Revision tags: llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1 |
|
| #
6a1c3efa |
| 05-May-2021 |
peter klausler <[email protected]> |
[flang] Implement NAMELIST I/O in the runtime
Add InputNamelist and OutputNamelist as I/O data transfer APIs to be used with internal & external list-directed I/O; delete the needless original namel
[flang] Implement NAMELIST I/O in the runtime
Add InputNamelist and OutputNamelist as I/O data transfer APIs to be used with internal & external list-directed I/O; delete the needless original namelist-specific Begin... calls. Implement NAMELIST output and input; add basic tests.
Differential Revision: https://reviews.llvm.org/D101931
show more ...
|