Andrew Kelley
c0aa4a1a42
stage2: implement basic unions
...
* AIR instructions struct_field_ptr and related functions now are also
emitted by the frontend for unions. Backends must inspect the type
of the pointer operand to lower the instructions correctly.
- These will be renamed to `agg_field_ptr` (short for "aggregate") in
the future.
* Introduce the new `set_union_tag` AIR instruction.
* Introduce `Module.EnumNumbered` and associated `Type` methods. This
is for enums which have no decls, but do have the possibility of
overriding the integer tag type and tag values.
* Sema: Implement support for union tag types in both the
auto-generated and explicitly-provided cases, as well as explicitly
provided enum tag values in union declarations.
* LLVM backend: implement lowering union types, union field pointer
instructions, and the new `set_union_tag` instruction.
2021-09-27 19:53:29 -07:00
..
2021-09-24 13:39:20 -04:00
2021-04-29 15:54:04 -07:00
2021-04-29 15:54:04 -07:00
2021-04-29 15:54:04 -07:00
2021-04-29 15:54:04 -07:00
2021-09-01 17:54:07 -07:00
2021-06-21 17:03:03 -07:00
2021-05-08 14:45:21 -07:00
2021-09-24 13:39:20 -04:00
2021-09-13 21:37:11 -07:00
2021-08-29 11:57:32 +02:00
2021-06-21 17:03:03 -07:00
2021-09-20 16:48:42 -07:00
2021-06-21 17:03:03 -07:00
2021-09-24 17:33:06 -07:00
2021-06-21 17:03:03 -07:00
2021-06-14 00:16:40 +03:00
2021-05-08 14:45:21 -07:00
2021-08-01 12:36:04 -07:00
2021-06-05 22:08:36 -04:00
2021-05-08 14:45:21 -07:00
2021-05-08 14:45:21 -07:00
2021-08-12 10:48:54 -07:00
2021-08-12 10:48:54 -07:00
2021-08-30 18:50:07 -04:00
2021-05-08 14:45:21 -07:00
2021-05-08 14:45:21 -07:00
2021-06-10 08:33:42 +03:00
2021-08-23 15:30:57 -07:00
2021-08-24 22:35:37 -07:00
2021-09-24 13:39:20 -04:00
2021-09-01 17:54:06 -07:00
2021-05-08 14:45:21 -07:00
2021-05-08 14:45:21 -07:00
2021-05-08 14:45:21 -07:00
2021-05-08 14:45:21 -07:00
2021-06-21 17:03:03 -07:00
2021-06-21 17:03:03 -07:00
2021-08-21 20:47:42 -07:00
2021-08-28 16:04:38 -07:00
2021-05-08 14:45:21 -07:00
2021-05-08 14:45:21 -07:00
2021-08-07 20:34:28 -07:00
2021-08-07 20:34:28 -07:00
2021-06-21 17:03:03 -07:00
2021-05-08 14:45:21 -07:00
2021-06-21 17:03:03 -07:00
2021-06-21 17:03:03 -07:00
2021-07-25 22:43:52 -04:00
2021-07-26 20:41:00 -04:00
2021-04-29 15:54:04 -07:00
2021-09-24 17:33:06 -07:00
2021-05-08 14:45:21 -07:00
2021-05-08 14:45:21 -07:00
2021-06-21 17:03:03 -07:00
2021-06-21 17:03:03 -07:00
2021-08-07 15:46:53 -07:00
2021-08-07 15:46:53 -07:00
2021-07-25 20:35:55 -04:00
2021-05-08 14:45:21 -07:00
2021-05-08 14:45:21 -07:00
2021-05-08 14:45:21 -07:00
2021-06-21 17:03:03 -07:00
2021-09-01 14:17:45 -04:00
2021-07-26 20:05:48 -04:00
2021-06-09 23:54:23 -04:00
2021-09-20 20:51:31 -07:00
2021-09-20 20:51:31 -07:00
2021-06-21 17:03:03 -07:00
2021-06-21 17:03:03 -07:00
2021-05-08 14:45:21 -07:00
2021-05-08 14:45:21 -07:00
2021-05-08 14:45:21 -07:00
2021-09-25 22:18:43 -07:00
2021-09-25 22:18:43 -07:00
2021-05-08 14:45:21 -07:00
2021-05-08 14:45:21 -07:00
2021-09-24 13:39:20 -04:00
2021-09-23 13:17:06 -04:00
2021-09-20 20:51:31 -07:00
2021-08-06 09:10:50 +03:00
2021-09-20 20:51:31 -07:00
2021-07-06 12:42:18 +03:00
2021-05-08 14:45:21 -07:00
2021-06-21 17:03:03 -07:00
2021-06-21 17:03:03 -07:00
2021-09-20 02:29:04 +02:00
2021-07-28 18:17:11 -04:00
2021-05-08 14:45:21 -07:00
2021-06-21 17:03:03 -07:00
2021-09-27 19:53:29 -07:00
2021-09-27 19:53:29 -07:00
2021-09-01 17:54:07 -07:00
2021-09-01 17:54:06 -07:00
2021-06-21 17:03:03 -07:00
2021-09-24 13:39:20 -04:00
2021-06-21 17:03:03 -07:00
2021-05-08 14:45:21 -07:00
2021-06-21 17:03:03 -07:00
2021-09-21 23:21:07 -07:00