Krzysztof Drewniak
f7d03707d1
[AMDGPU] Generalize amdgcn.make.buffer.rsrc to fat pointers ( #126828 )
...
Attempting to pass a `ptr addrspace(7)` to functions that take `ptr`
arguments produces undesirable `addrspacecast(addrspacecast(p8 x to p7)
to p0) => addrspacecast(p8 x to p0)` folds. This results in illegal GEP
operations on buffer resources, which can't be GEP'd. (However, note
that, while unimplemneted, addressspacecast from ptr addrspace(7) to ptr
is legal - it's just an effective address computation)
To resolve this problem, and thus prevent illegal
`getelementptr T, ptr addrspace(8) %x, ...` s from being produces, this
commit extends amdgcn.make.buffer.rsrc to also be variadic in its result
type, auto-upgrading old manglings.
The logic for handling a make.buffer.rsrc in instruction selection
remains untouched and expects the output type to be a ptr addrspace(8),
as does the Clang lowering for its builtin (the pointer-to-pointer
version might want a different name in clang). LowerBufferFatPointers
has been updated to lower
amdgcn.make.buffer.rsrc.p7.p* to amdgcn.make.buffer.rsrc.p8.p* .
This'll also make exposing buffer fat pointers in Clang easier, since
you don't have to cast between a `__amdgcn_rsrc_t` and a pointer.
2025-02-18 14:15:28 -06:00
..
2023-05-17 17:03:15 +02:00
2025-02-18 14:15:28 -06:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-10-07 14:54:34 -07:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2023-01-31 11:48:35 +01:00
2024-11-19 08:12:25 +00:00
2022-12-07 20:53:15 +03:00
2023-03-17 17:17:13 +01:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2024-11-19 08:12:25 +00:00
2022-12-07 20:53:15 +03:00
2023-01-23 12:11:33 +01:00
2024-01-25 16:05:54 +08:00
2024-11-19 08:12:25 +00:00
2022-10-05 16:47:53 +02:00
2024-01-25 16:05:54 +08:00
2022-12-07 20:53:15 +03:00
2024-01-25 16:05:54 +08:00
2024-11-19 08:12:25 +00:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2024-11-19 08:12:25 +00:00
2024-06-14 15:07:27 +01:00
2024-11-19 08:12:25 +00:00
2024-05-11 16:26:04 +01:00
2022-12-08 02:38:45 +03:00
2023-04-28 17:53:39 +07:00
2024-03-18 11:46:25 -07:00
2023-08-23 14:05:34 -07:00
2024-01-25 16:05:54 +08:00
2024-01-25 16:05:54 +08:00
2022-12-07 20:53:15 +03:00
2024-01-25 16:05:54 +08:00
2024-11-19 08:12:25 +00:00
2023-04-11 11:55:54 +02:00
2024-01-25 16:05:54 +08:00
2024-08-30 14:12:52 +01:00
2025-01-16 14:07:03 +00:00
2024-10-04 19:13:51 +01:00
2022-12-07 20:53:15 +03:00
2023-11-30 13:00:26 +00:00
2024-09-18 14:48:58 +02:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2024-11-26 14:16:16 +00:00
2025-01-29 16:56:47 +01:00
2022-12-07 20:53:15 +03:00
2024-11-19 08:12:25 +00:00
2024-01-25 16:05:54 +08:00
2025-02-16 20:55:22 +01:00
2024-11-26 14:16:16 +00:00
2023-04-26 09:26:47 +02:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2023-02-26 12:41:41 -05:00
2024-01-25 16:05:54 +08:00
2024-11-19 08:12:25 +00:00
2024-06-19 10:22:52 +02:00
2022-10-05 16:47:53 +02:00
2023-06-23 09:52:03 -07:00
2023-06-23 09:52:03 -07:00
2022-12-07 20:53:15 +03:00
2024-11-19 08:12:25 +00:00
2022-12-07 20:53:15 +03:00
2023-10-24 20:27:39 -07:00
2025-01-13 20:03:58 +00:00
2024-01-25 16:05:54 +08:00
2024-01-25 16:05:54 +08:00
2024-01-25 16:05:54 +08:00
2024-01-25 16:05:54 +08:00
2024-11-19 08:12:25 +00:00
2023-08-21 12:05:32 +02:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2024-11-19 08:12:25 +00:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2024-11-19 08:12:25 +00:00
2024-11-19 08:12:25 +00:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2024-11-19 08:12:25 +00:00
2022-10-05 16:47:53 +02:00
2022-12-07 20:53:15 +03:00
2022-10-05 16:47:53 +02:00
2022-12-07 20:53:15 +03:00
2022-12-07 09:51:35 +01:00
2023-12-07 10:45:48 +01:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2024-11-20 19:52:51 +08:00
2022-12-07 20:53:15 +03:00
2024-01-25 16:05:54 +08:00
2022-12-07 20:53:15 +03:00
2022-12-07 20:53:15 +03:00
2022-10-05 16:47:53 +02:00
2024-01-25 16:05:54 +08:00
2023-04-03 14:20:06 +02:00
2022-12-07 20:53:15 +03:00
2022-12-20 10:02:46 +01:00
2024-01-25 16:05:54 +08:00
2022-12-07 20:53:15 +03:00
2024-01-25 16:05:54 +08:00
2024-05-19 14:59:03 +01:00
2024-01-25 16:05:54 +08:00
2022-12-07 20:53:15 +03:00
2024-09-03 15:27:03 +01:00
2023-06-16 06:25:27 +01:00
2024-11-19 08:12:25 +00:00
2023-09-15 09:54:38 -07:00
2024-06-14 15:07:27 +01:00
2024-11-19 08:12:25 +00:00
2023-05-09 19:11:21 -05:00
2024-01-25 16:05:54 +08:00
2024-01-25 16:05:54 +08:00
2025-01-29 16:56:47 +01:00
2022-12-07 20:53:15 +03:00
2024-09-03 17:08:11 +01:00
2022-10-05 16:47:53 +02:00
2024-01-17 15:59:13 +01:00
2024-01-25 16:05:54 +08:00