Andy Wingo
82f92e35c6
[WebAssembly][CodeGen] IR support for WebAssembly local variables
...
This patch adds TargetStackID::WasmLocal. This stack holds locations of
values that are only addressable by name -- not via a pointer to memory.
For the WebAssembly target, these objects are lowered to WebAssembly
local variables, which are managed by the WebAssembly run-time and are
not addressable by linear memory.
For the WebAssembly target IR indicates that an AllocaInst should be put
on TargetStackID::WasmLocal by putting it in the non-integral address
space WASM_ADDRESS_SPACE_WASM_VAR, with value 1. SROA will mostly lift
these allocations to SSA locals, but any alloca that reaches instruction
selection (usually in non-optimized builds) will be assigned the new
TargetStackID there. Loads and stores to those values are transformed
to new WebAssemblyISD::LOCAL_GET / WebAssemblyISD::LOCAL_SET nodes,
which then lower to the type-specific LOCAL_GET_I32 etc instructions via
tablegen patterns.
Differential Revision: https://reviews.llvm.org/D101140
2021-06-01 11:31:39 +02:00
..
2021-05-26 21:31:50 +03:00
2021-05-14 10:53:48 -07:00
2021-05-14 10:53:48 -07:00
2020-11-13 10:35:24 +01:00
2021-05-26 11:34:50 -07:00
2021-04-26 17:21:49 -04:00
2021-05-14 10:53:48 -07:00
2021-04-09 12:54:22 +03:00
2021-01-07 22:22:05 +03:00
2021-04-15 09:12:56 +05:30
2021-05-03 10:33:11 +02:00
2021-05-31 09:54:57 -07:00
2021-01-07 22:22:05 +03:00
2021-02-17 16:01:32 -08:00
2021-05-14 10:53:48 -07:00
2021-03-24 11:54:05 -04:00
2021-03-26 15:38:14 +00:00
2021-04-15 14:57:56 +02:00
2021-05-27 11:28:52 -04:00
2021-05-13 18:57:42 -04:00
2021-04-17 08:17:33 +02:00
2021-04-27 12:26:37 +02:00
2021-01-26 14:54:15 +03:00
2021-01-30 09:53:42 -08:00
2021-04-27 11:52:23 +02:00
2021-01-28 11:20:09 +01:00
2021-01-07 22:22:05 +03:00
2021-03-24 11:54:05 -04:00
2021-03-24 11:54:05 -04:00
2021-01-20 22:22:45 +03:00
2021-01-07 22:22:05 +03:00
2021-01-07 22:22:05 +03:00
2021-05-06 16:17:33 -07:00
2021-05-12 14:17:44 +01:00
2021-05-28 11:22:13 +02:00
2021-04-09 12:28:36 +02:00
2021-05-28 11:22:13 +02:00
2021-05-28 11:22:13 +02:00
2021-05-05 08:57:51 +01:00
2021-05-11 20:12:20 -04:00
2021-05-27 11:49:37 -04:00
2021-05-25 16:04:04 +05:30
2021-04-17 08:17:33 +02:00
2021-01-07 22:22:05 +03:00
2021-01-20 22:22:45 +03:00
2021-01-20 22:22:45 +03:00
2021-04-17 08:17:33 +02:00
2021-05-25 11:29:29 -07:00
2021-02-14 09:02:55 -08:00
2021-05-20 15:59:01 -07:00
2021-03-15 15:24:01 +00:00
2021-01-07 22:22:05 +03:00
2021-01-07 22:22:05 +03:00
2021-01-20 22:22:45 +03:00
2021-01-30 09:53:42 -08:00
2021-03-09 09:13:23 +08:00
2021-01-22 11:24:08 +01:00
2021-01-22 11:24:08 +01:00
2021-01-07 22:22:05 +03:00
2021-01-07 22:22:05 +03:00
2021-01-07 22:22:05 +03:00
2021-04-27 12:26:37 +02:00
2021-04-27 11:52:23 +02:00
2021-01-28 12:38:44 +00:00
2021-04-30 08:37:26 +05:30
2021-05-26 16:40:15 +02:00
2021-03-24 11:54:05 -04:00
2021-04-27 11:52:23 +02:00
2021-05-26 11:57:41 +02:00
2021-02-04 17:04:32 +00:00
2021-01-07 22:22:05 +03:00
2021-02-17 16:01:32 -08:00
2021-05-14 10:53:48 -07:00
2021-02-17 16:01:32 -08:00
2021-05-12 11:51:59 -04:00
2021-05-07 21:51:47 -07:00
2021-01-07 22:22:05 +03:00
2021-04-30 22:51:51 +03:00
2021-04-21 17:32:02 +03:00
2021-05-18 10:15:49 +01:00
2021-01-07 22:22:05 +03:00
2021-04-15 09:50:55 -07:00
2021-01-07 22:22:05 +03:00
2021-05-11 13:17:33 -07:00
2021-04-26 17:21:49 -04:00
2021-04-20 16:17:15 +05:30
2021-03-26 09:32:02 +00:00
2020-11-11 17:13:40 +00:00
2021-04-22 21:32:01 -04:00
2021-04-20 09:17:52 +01:00
2021-04-30 08:58:24 +01:00
2021-04-30 09:18:56 +09:00
2021-01-07 22:22:05 +03:00
2021-01-20 22:22:45 +03:00
2021-01-07 22:22:05 +03:00
2021-01-07 22:22:05 +03:00
2021-01-27 16:29:05 -08:00
2021-05-13 14:25:18 -04:00
2021-02-17 16:01:32 -08:00
2021-02-17 16:01:32 -08:00
2021-02-26 12:29:37 -08:00
2021-02-26 12:29:37 -08:00
2021-05-14 10:53:48 -07:00
2021-05-14 09:25:44 +01:00
2021-01-20 22:22:45 +03:00
2021-01-20 22:22:45 +03:00
2021-01-20 22:22:45 +03:00
2021-01-07 22:22:05 +03:00
2021-01-20 22:22:45 +03:00
2021-01-20 22:22:45 +03:00
2021-01-20 22:22:45 +03:00
2021-01-07 22:22:05 +03:00
2021-01-20 22:22:45 +03:00
2021-05-07 13:12:30 +01:00
2021-05-07 13:12:30 +01:00
2021-01-20 22:22:45 +03:00
2021-02-15 11:56:00 -08:00
2021-01-20 22:22:45 +03:00
2021-01-20 22:22:45 +03:00
2021-01-20 22:22:45 +03:00
2021-01-20 22:22:45 +03:00
2021-03-12 11:52:08 +09:00
2021-04-09 11:20:31 +02:00
2021-03-03 14:19:16 +01:00
2021-01-20 22:22:45 +03:00
2021-05-06 09:55:22 +01:00
2021-05-06 07:47:39 -07:00
2021-06-01 11:31:39 +02:00
2021-01-07 22:22:05 +03:00
2021-05-14 12:54:56 +09:00
2021-05-12 14:52:37 +02:00
2021-04-09 11:20:31 +02:00
2021-05-14 18:05:05 -04:00
2021-05-14 18:05:05 -04:00
2021-05-25 10:35:25 -04:00
2021-05-12 14:17:44 +01:00
2021-05-28 11:22:13 +02:00
2021-04-30 22:51:51 +03:00
2021-03-20 13:38:58 +09:00
2021-05-11 21:26:43 -04:00
2021-02-15 08:45:46 +09:00
2021-01-24 12:18:56 -08:00
2021-03-12 08:11:14 +08:00
2021-05-14 10:53:48 -07:00
2021-05-07 11:15:25 +02:00
2021-01-07 22:22:05 +03:00
2021-01-07 22:22:05 +03:00
2021-04-07 22:17:58 +00:00
2021-01-20 22:22:45 +03:00
2021-02-11 20:31:29 +09:00
2021-03-24 14:14:13 +03:00
2021-01-20 22:22:45 +03:00
2021-02-26 18:26:40 -05:00
2021-04-23 18:09:24 +02:00
2021-04-30 22:15:45 +01:00
2020-11-04 12:25:41 +01:00
2021-02-17 16:01:32 -08:00
2021-04-29 12:53:20 +02:00
2021-05-26 18:20:33 +02:00
2021-04-20 14:20:30 +01:00
2021-04-20 15:34:43 +02:00
2021-04-29 20:53:40 +01:00
2021-05-06 21:02:26 +09:00
2021-04-06 14:10:46 +03:00
2021-04-06 10:59:30 -04:00
2021-04-16 16:23:52 -04:00
2021-04-16 16:23:52 -04:00
2021-05-17 15:28:00 +01:00
2021-04-16 13:06:50 -04:00
2021-04-15 12:07:08 -07:00
2021-05-17 08:38:52 -07:00