Kajetan Puchalski
0d40574e16
[flang] Inline hlfir.copy_in for trivial types ( #138718 )
...
hlfir.copy_in implements copying non-contiguous array slices for
functions that take in arrays required to be contiguous through
flang-rt.
For large arrays of trivial types, this can incur overhead compared to a
plain, inlined copy loop.
To address that, add a new InlineHLFIRCopyIn optimisation pass to inline
hlfir.copy_in operations for trivial types.
For the time being, the pattern is only applied in cases where the
copy-in does not require a corresponding copy-out, such as when the
function being called declares the array parameter as intent(in).
Applying this optimisation reduces the runtime of thornado-mini's
DeleptonizationProblem by about 10%.
---------
Signed-off-by: Kajetan Puchalski <kajetan.puchalski@arm.com>
2025-06-06 15:10:17 +01:00
..
2025-05-20 09:22:05 -07:00
2025-03-21 11:41:04 +01:00
2025-03-21 11:41:04 +01:00
2025-06-06 09:53:41 +02:00
2025-06-06 09:53:41 +02:00
2025-02-28 09:50:05 +01:00
2025-04-04 06:13:30 -07:00
2024-10-23 12:33:14 +02:00
2024-10-03 17:10:57 +02:00
2025-06-06 09:53:41 +02:00
2024-10-03 17:10:57 +02:00
2025-01-16 12:34:38 -08:00
2025-03-21 11:41:04 +01:00
2025-03-21 11:41:04 +01:00
2025-01-16 12:34:38 -08:00
2025-01-16 12:34:38 -08:00
2025-01-16 12:34:38 -08:00
2025-06-06 09:53:41 +02:00
2024-11-21 11:14:21 +09:00
2025-02-28 09:50:05 +01:00
2025-04-04 06:13:30 -07:00
2025-04-04 06:13:30 -07:00
2025-01-16 12:34:38 -08:00
2025-01-16 12:34:38 -08:00
2025-03-21 11:41:04 +01:00
2025-03-21 11:41:04 +01:00
2024-10-03 17:10:57 +02:00
2025-02-28 09:50:05 +01:00
2025-05-12 18:33:29 -07:00
2024-10-03 17:10:57 +02:00
2025-03-21 11:41:04 +01:00
2025-06-06 09:53:41 +02:00
2025-03-21 11:41:04 +01:00
2025-06-06 09:53:41 +02:00
2025-01-29 12:03:05 -08:00
2024-12-02 09:52:29 +01:00
2024-12-02 09:52:29 +01:00
2025-01-29 12:01:13 -08:00
2025-01-28 09:25:36 -08:00
2024-10-10 09:26:04 +01:00
2025-01-03 08:33:14 -08:00
2025-06-06 15:10:17 +01:00
2025-01-27 18:14:02 -08:00
2025-01-16 12:34:38 -08:00
2025-03-21 11:41:04 +01:00
2025-03-21 11:41:04 +01:00
2025-03-21 11:41:04 +01:00
2025-03-21 11:41:04 +01:00
2025-04-15 10:14:58 +01:00
2025-03-21 11:41:04 +01:00
2024-12-13 13:08:02 -08:00
2025-05-12 18:34:12 -07:00
2025-03-21 11:41:04 +01:00
2024-12-05 09:34:32 -08:00
2025-01-03 08:17:52 -08:00
2025-05-22 06:50:25 -07:00
2025-01-03 08:33:14 -08:00
2024-10-03 17:10:57 +02:00
2025-01-31 09:35:26 +00:00
2025-01-16 12:34:38 -08:00
2025-03-21 11:41:04 +01:00
2025-05-12 18:33:47 -07:00
2025-03-21 11:41:04 +01:00
2025-01-27 18:14:02 -08:00
2024-12-12 10:38:34 -08:00
2025-04-18 11:56:07 -07:00
2025-04-18 11:56:07 -07:00
2025-04-18 11:56:07 -07:00
2025-03-03 09:58:20 -08:00
2025-01-17 12:09:44 -08:00
2025-01-15 08:42:57 -08:00
2025-04-30 13:53:26 -07:00
2025-04-30 13:53:26 -07:00
2025-04-30 13:53:26 -07:00
2025-04-30 13:53:26 -07:00
2025-01-30 07:46:12 -08:00
2025-01-10 09:28:03 -08:00
2024-12-16 08:00:29 -08:00
2025-03-21 11:41:04 +01:00
2025-03-21 11:41:04 +01:00
2025-05-02 09:03:20 -07:00
2025-05-02 09:03:20 -07:00
2025-05-02 09:03:20 -07:00
2025-05-02 09:03:20 -07:00
2025-05-02 09:03:20 -07:00