Slava Zakharin
5d91c11df5
[flang] Support cuf.device_address in FIR AliasAnalysis. ( #177518 )
...
Support `cuf.device_address` same way as `fir.address_of`.
This implementation implies that the host address and the device
address `MustAlias` (as shown in the new test). This should be
conservatively correct as long as `MustAlias` does not allow
to assume that the actual addresses are the same (that is what
LLVM documentation implies, I believe).
It is probably worth adding an operation interface to handle
`fir::AddrOfOp` and `cuf::DeviceAddressOp` in FIR AliasAnalysis,
but for the initial implementation I hardcoded the checks.
I also removed the call to `fir::valueHasFirAttribute` that performs
on demand SymbolTable lookups, which may be costly, and added
SymbolTable caching in FIR AliasAnalysis object. Anyway,
`fir::valueHasFirAttribute` does not work for `cuf::DeviceAddressOp`.
2026-01-23 17:42:35 -08:00
..
2025-11-10 10:12:24 -07:00
2026-01-14 10:46:50 -05:00
2026-01-20 17:17:08 +00:00
2026-01-23 22:36:39 +01:00
2025-05-29 13:42:57 -07:00
2025-09-19 01:36:13 +00:00
2025-05-09 12:19:53 +01:00
2025-05-09 12:19:53 +01:00
2025-09-03 17:25:27 +02:00
2025-03-03 07:53:17 -08:00
2025-09-03 17:25:27 +02:00
2025-09-03 17:25:27 +02:00
2025-09-03 17:25:27 +02:00
2025-10-24 21:05:47 +02:00
2025-05-09 12:19:53 +01:00
2025-05-09 12:19:53 +01:00
2025-11-20 14:28:56 +00:00
2025-10-01 09:05:37 +01:00
2025-10-01 09:05:37 +01:00
2025-05-09 12:19:53 +01:00
2025-11-14 12:57:05 +01:00
2025-11-12 10:21:32 +00:00
2025-12-01 20:53:44 -05:00
2025-05-09 12:19:53 +01:00
2025-05-09 12:19:53 +01:00
2025-10-01 09:05:37 +01:00
2026-01-19 17:16:11 +00:00
2025-05-09 12:19:53 +01:00
2025-12-01 20:53:44 -05:00
2025-12-01 20:53:44 -05:00
2025-12-01 20:53:44 -05:00
2025-05-09 12:19:53 +01:00
2026-01-19 17:16:11 +00:00
2025-11-12 10:21:32 +00:00
2025-05-09 12:19:53 +01:00
2025-01-28 12:54:15 +00:00
2025-10-03 10:08:35 +01:00
2025-07-03 10:38:28 +01:00
2025-07-03 10:38:28 +01:00
2025-11-06 17:18:07 +00:00
2025-09-03 17:25:27 +02:00
2025-10-01 09:05:37 +01:00
2025-09-30 14:35:33 +01:00
2025-10-01 09:05:37 +01:00
2026-01-19 17:16:11 +00:00
2025-05-09 12:19:53 +01:00
2025-05-09 12:19:53 +01:00
2025-10-01 09:05:37 +01:00
2025-05-13 16:17:49 +01:00
2025-12-31 10:08:32 -08:00
2025-08-26 06:11:15 +02:00
2025-12-30 10:27:31 -08:00
2025-12-30 10:27:31 -08:00
2025-09-03 15:51:23 -03:00
2025-07-23 13:25:43 -04:00
2025-05-29 13:42:57 -07:00
2025-05-29 13:42:57 -07:00
2025-02-28 05:46:03 +01:00
2025-02-21 16:26:19 +01:00
2026-01-16 08:32:38 -08:00
2025-03-31 11:41:43 -07:00
2025-02-05 18:24:47 +00:00
2025-04-10 18:41:54 -07:00
2025-04-10 18:41:54 -07:00
2025-12-31 11:26:17 -08:00
2025-08-15 15:41:41 +01:00
2026-01-21 13:22:45 +01:00
2026-01-09 15:15:10 +01:00
2025-11-24 21:22:49 +01:00
2025-11-12 10:56:50 -06:00
2025-08-12 13:13:10 -07:00
2025-11-19 11:56:04 -05:00
2025-04-01 08:41:11 -07:00
2025-04-17 11:46:06 -07:00
2025-03-18 14:07:41 +01:00
2025-08-08 11:09:34 +02:00
2025-11-10 17:33:43 -05:00
2025-12-11 10:03:43 +00:00
2025-12-11 10:03:43 +00:00
2025-12-11 10:03:43 +00:00
2026-01-10 19:33:30 -05:00
2025-09-04 15:49:38 -07:00
2025-12-11 10:03:43 +00:00
2025-12-11 10:03:43 +00:00
2025-12-11 10:03:43 +00:00
2025-09-04 15:49:38 -07:00
2025-12-12 18:26:11 +01:00
2026-01-23 17:42:35 -08:00
2025-12-11 10:03:43 +00:00
2025-09-04 15:49:38 -07:00
2025-02-24 14:18:17 -08:00