llvm-project/flang/runtime
peter klausler c1db35f0c2 [flang] Implement more transformational intrinsic functions in runtime
Define APIs, naively implement, and add basic sanity unit tests for
the transformational intrinsic functions CSHIFT, EOSHIFT, PACK,
SPREAD, TRANSPOSE, and UNPACK.  These are the remaining transformational
intrinsic functions that rearrange data without regard to type
(except for default boundary values in EOSHIFT); RESHAPE was already
in place as a stress test for the runtime's descriptor handling
facilities.

Code is in place to create copies of allocatable/automatic
components when transforming arrays of derived type, but it won't
do anything until we have derived type information being passed to the
runtime from the frontend.

Differential Revision: https://reviews.llvm.org/D102857
2021-05-20 13:22:01 -07:00
..
CMakeLists.txt [flang] Implement more transformational intrinsic functions in runtime 2021-05-20 13:22:01 -07:00
ISO_Fortran_binding.cpp [flang] Fix handling of elem_len in CFI_establish 2021-05-03 08:08:07 +00:00
allocatable.cpp [flang] Implement more transformational intrinsic functions in runtime 2021-05-20 13:22:01 -07:00
allocatable.h [flang] Update DE/ALLOCATE statement runtime message processing 2021-03-12 15:42:06 -08:00
buffer.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
buffer.h [flang] Fix Boolean flag arguments 2021-04-14 10:19:44 -07:00
c-or-cpp.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
character.cpp [flang] Remove redundant reallocation 2021-05-07 08:54:09 +00:00
character.h [flang] Remove interfaces for Character[Min|Max][Val|Loc]. NFC 2021-04-28 07:58:06 +00:00
complex-reduction.c [flang] Implement DOT_PRODUCT in the runtime 2021-05-13 10:40:07 -07:00
complex-reduction.h [flang] Implement DOT_PRODUCT in the runtime 2021-05-13 10:40:07 -07:00
config.h.cmake [flang] Support platforms without strerror_r 2020-03-28 16:46:43 -05:00
connection.cpp [flang] Implement NAMELIST I/O in the runtime 2021-05-06 11:18:36 -07:00
connection.h [flang] Implement NAMELIST I/O in the runtime 2021-05-06 11:18:36 -07:00
copy.cpp [flang] Implement more transformational intrinsic functions in runtime 2021-05-20 13:22:01 -07:00
copy.h [flang] Implement more transformational intrinsic functions in runtime 2021-05-20 13:22:01 -07:00
cpp-type.h [flang] Implement reductions in the runtime 2021-04-01 11:23:50 -07:00
derived.cpp [flang] Implement derived type description table encoding 2020-12-08 10:26:58 -08:00
derived.h [flang] Implement derived type description table encoding 2020-12-08 10:26:58 -08:00
descriptor-io.h [flang] Implement NAMELIST I/O in the runtime 2021-05-06 11:18:36 -07:00
descriptor.cpp [flang] Implement NAMELIST I/O in the runtime 2021-05-06 11:18:36 -07:00
descriptor.h [flang] Implement more transformational intrinsic functions in runtime 2021-05-20 13:22:01 -07:00
dot-product.cpp [flang] Implement MATMUL in the runtime 2021-05-18 10:59:52 -07:00
edit-input.cpp [flang] Implement NAMELIST I/O in the runtime 2021-05-06 11:18:36 -07:00
edit-input.h [flang][msvc] Avoid dependence on long double 2020-10-07 15:12:08 -07:00
edit-output.cpp [flang] Implement NAMELIST I/O in the runtime 2021-05-06 11:18:36 -07:00
edit-output.h [flang][msvc] Avoid dependence on long double 2020-10-07 15:12:08 -07:00
entry-names.h [flang] Implement reductions in the runtime 2021-04-01 11:23:50 -07:00
environment.cpp [flang] Implement byte-swapped external unformatted I/O in runtime 2020-07-21 18:14:46 -07:00
environment.h [flang] Implement byte-swapped external unformatted I/O in runtime 2020-07-21 18:14:46 -07:00
extrema.cpp [flang] Implement NORM2 in the runtime 2021-05-07 13:23:21 -07:00
file.cpp [Flang] Fix compilation on MinGW-w64 2021-02-17 21:53:48 -06:00
file.h [flang] Acquire file accessibility, size, positioning 2020-08-03 16:42:48 -07:00
findloc.cpp [flang] (NFC) Break up flang/runtime/reduction.cpp 2021-04-22 15:24:10 -07:00
format-implementation.h [flang] Fix Gw.d format output 2020-09-30 18:02:25 -07:00
format.cpp [flang] Implement byte-swapped external unformatted I/O in runtime 2020-07-21 18:14:46 -07:00
format.h [flang] Implement NAMELIST I/O in the runtime 2021-05-06 11:18:36 -07:00
internal-unit.cpp [flang] External I/O runtime work, repackaged (part 1) 2020-07-02 15:17:26 -07:00
internal-unit.h [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
io-api.cpp [flang] Support legacy extension OPEN(ACCESS='APPEND') 2021-05-13 11:51:20 -07:00
io-api.h [flang] Implement NAMELIST I/O in the runtime 2021-05-06 11:18:36 -07:00
io-error.cpp [flang] Fix race condition in runtime 2021-05-06 11:09:30 -07:00
io-error.h [flang] Handle END= situations better in runtime input 2021-04-14 09:34:14 -07:00
io-stmt.cpp [flang] Implement NAMELIST I/O in the runtime 2021-05-06 11:18:36 -07:00
io-stmt.h [flang] Implement NAMELIST I/O in the runtime 2021-05-06 11:18:36 -07:00
iostat.cpp [flang] Define new runtime error IOSTAT values (I/O runtime work part 4) 2020-07-03 12:41:33 -07:00
iostat.h [flang] Define new runtime error IOSTAT values (I/O runtime work part 4) 2020-07-03 12:41:33 -07:00
lock.h [flang] More Fortran runtime support for CHARACTER operations 2020-06-17 15:51:48 -07:00
magic-numbers.h [flang] Implement runtime support for basic ALLOCATE/DEALLOCATE 2020-11-12 10:21:40 -08:00
main.cpp [flang] Implement byte-swapped external unformatted I/O in runtime 2020-07-21 18:14:46 -07:00
main.h [flang] Implement byte-swapped external unformatted I/O in runtime 2020-07-21 18:14:46 -07:00
matmul.cpp [flang] Implement MATMUL in the runtime 2021-05-18 10:59:52 -07:00
matmul.h [flang] Implement MATMUL in the runtime 2021-05-18 10:59:52 -07:00
memory.cpp [flang] Reformat with latest clang-format and .clang-format 2020-03-28 21:00:16 -07:00
memory.h [flang] Implement runtime support for INQUIRE statements 2020-08-03 17:15:08 -07:00
misc-intrinsic.cpp [flang] TRANSFER() intrinsic function 2021-04-02 10:41:37 -07:00
misc-intrinsic.h [flang] TRANSFER() intrinsic function 2021-04-02 10:41:37 -07:00
namelist.cpp [flang] Implement NAMELIST I/O in the runtime 2021-05-06 11:18:36 -07:00
namelist.h [flang] Implement NAMELIST I/O in the runtime 2021-05-06 11:18:36 -07:00
numeric.cpp [flang] Define missing & needed IEEE_ARITHMETIC symbols 2021-04-19 11:44:43 -07:00
numeric.h [flang] Define missing & needed IEEE_ARITHMETIC symbols 2021-04-19 11:44:43 -07:00
pgmath.h.inc [flang] Rework host runtime folding and enable REAL(2) folding with it. 2020-10-14 16:40:44 +02:00
product.cpp [flang] (NFC) Break up flang/runtime/reduction.cpp 2021-04-22 15:24:10 -07:00
random.cpp [flang] Fix narrowing warning on macos 2021-04-12 09:40:52 -07:00
random.h [flang] RANDOM_NUMBER, RANDOM_SEED, RANDOM_INIT in runtime 2021-04-09 17:03:11 -07:00
reduction-templates.h [flang] (NFC) Break up flang/runtime/reduction.cpp 2021-04-22 15:24:10 -07:00
reduction.cpp [flang] Implement DOT_PRODUCT in the runtime 2021-05-13 10:40:07 -07:00
reduction.h [flang] Implement MATMUL in the runtime 2021-05-18 10:59:52 -07:00
stat.cpp [flang] Update DE/ALLOCATE statement runtime message processing 2021-03-12 15:42:06 -08:00
stat.h [flang] Update DE/ALLOCATE statement runtime message processing 2021-03-12 15:42:06 -08:00
stop.cpp [flang] Extend runtime API for PAUSE to allow a stop code 2020-10-01 17:20:11 -07:00
stop.h [flang] Extend runtime API for PAUSE to allow a stop code 2020-10-01 17:20:11 -07:00
sum.cpp [flang] (NFC) Break up flang/runtime/reduction.cpp 2021-04-22 15:24:10 -07:00
terminator.cpp [flang] Fix race condition in runtime 2021-05-06 11:09:30 -07:00
terminator.h [flang] Implement IPARITY, PARITY, and FINDLOC reductions 2021-04-20 12:25:42 -07:00
tools.cpp [flang] Implement more transformational intrinsic functions in runtime 2021-05-20 13:22:01 -07:00
tools.h [flang] Implement more transformational intrinsic functions in runtime 2021-05-20 13:22:01 -07:00
transformational.cpp [flang] Implement more transformational intrinsic functions in runtime 2021-05-20 13:22:01 -07:00
transformational.h [flang] Implement more transformational intrinsic functions in runtime 2021-05-20 13:22:01 -07:00
type-code.cpp [flang] Implement reductions in the runtime 2021-04-01 11:23:50 -07:00
type-code.h [flang] Correct TypeCode::IsLogical() 2021-04-12 12:57:22 -07:00
type-info.h [flang] Implement more transformational intrinsic functions in runtime 2021-05-20 13:22:01 -07:00
unit-map.cpp [flang] Implement runtime support for INQUIRE statements 2020-08-03 17:15:08 -07:00
unit-map.h [flang] Implement runtime support for INQUIRE statements 2020-08-03 17:15:08 -07:00
unit.cpp [flang] Implement NAMELIST I/O in the runtime 2021-05-06 11:18:36 -07:00
unit.h [flang] Runtime must defer formatted/unformatted determination 2021-05-06 11:06:43 -07:00