Arnold Schwaighofer
eaf90dff38
IRGen: Add metadata for async funclets denoting frame entry and frame exists
...
Adds sections `__TEXT,__swift_as_entry`, and `__TEXT,__swift_as_ret` that
contain relative pointers to async functlets modelling async function entries,
and function returns, respectively.
Emission of the sections can be trigger with the frontend option
`-Xfrontend -enable-async-frame-push-pop-metadata`.
This is done by:
* IRGen adding a `async_entry` function attribute to async functions.
* LLVM's coroutine splitting identifying continuation funclets that
model the return from an async function call by adding the function
attribute `async_ret`. (see #llvm-project/pull/9204)
* An LLVM pass that keys off these two function attribute and emits the
metadata into the above mention sections.
rdar://134460666
2024-09-03 08:44:16 -07:00
..
2024-02-21 11:20:06 -08:00
2024-02-21 11:20:06 -08:00
2024-03-23 23:54:23 +09:00
2024-02-21 11:20:06 -08:00
2024-02-21 11:20:06 -08:00
2024-08-22 20:24:39 +09:00
2024-04-30 16:10:36 -04:00
2024-01-20 17:44:12 -05:00
2024-02-21 11:20:06 -08:00
2024-08-21 06:34:17 -07:00
2024-01-22 08:29:07 -08:00
2024-02-02 09:36:49 -08:00
2024-09-01 18:03:26 -04:00
2024-04-04 17:24:55 -07:00
2024-08-17 22:04:15 -04:00
2024-01-31 11:16:36 +00:00
2024-07-10 14:48:34 -07:00
2024-03-16 08:34:42 -04:00
2023-12-06 15:00:58 -08:00
2024-06-21 02:24:03 -07:00
2024-08-08 15:45:42 +01:00
2024-08-08 15:45:42 +01:00
2024-02-02 09:36:49 -08:00
2024-03-02 14:59:37 +03:00
2024-07-28 10:29:57 -07:00
2024-02-02 09:36:49 -08:00
2024-02-21 11:20:06 -08:00
2024-04-10 09:38:02 -07:00
2024-07-23 17:00:10 -07:00
2024-05-30 16:39:49 -04:00
2024-02-21 11:20:06 -08:00
2024-03-05 16:12:32 -08:00
2023-08-17 09:42:43 -07:00
2024-08-09 11:38:26 -07:00
2024-01-03 21:00:56 -05:00
2024-08-23 20:42:51 -04:00
2024-08-08 23:35:58 -04:00
2024-07-24 10:08:24 -07:00
2024-09-02 21:42:04 -04:00
2024-08-19 14:33:07 -07:00
2024-08-27 14:29:08 -07:00
2024-08-27 14:29:08 -07:00
2023-11-30 14:42:02 -08:00
2023-10-20 22:57:11 +01:00
2024-04-19 16:57:04 +03:00
2024-07-08 16:15:44 -07:00
2024-02-21 11:20:06 -08:00
2024-08-22 15:59:04 -04:00
2024-07-16 14:10:02 -04:00
2024-08-22 15:23:21 -07:00
2024-07-16 14:10:02 -04:00
2024-08-06 16:10:42 -07:00
2024-05-15 15:10:03 -07:00
2024-07-16 14:10:02 -04:00
2024-08-07 08:14:11 -05:00
2024-07-16 14:10:02 -04:00
2024-08-30 21:26:44 -07:00
2024-08-14 10:37:31 -07:00
2024-07-06 12:05:47 -04:00
2024-07-16 14:10:02 -04:00
2024-01-25 16:04:43 -08:00
2024-09-02 15:24:47 +01:00
2023-12-15 15:33:44 -05:00
2024-08-22 09:57:06 -07:00
2024-03-13 19:55:15 -07:00
2024-07-10 14:20:03 -07:00
2024-07-07 15:38:00 -07:00
2024-08-05 11:28:26 -07:00
2024-04-01 10:59:16 -07:00
2024-02-21 11:20:06 -08:00
2024-02-21 11:20:06 -08:00
2024-01-11 08:18:28 -08:00
2024-08-20 16:54:51 -04:00
2023-06-29 19:23:44 -04:00
2024-07-06 12:05:46 -04:00
2024-06-27 19:14:06 -07:00
2024-08-02 10:04:28 -07:00
2024-06-05 10:59:41 -07:00
2024-07-12 15:53:58 -04:00
2024-04-04 17:24:55 -07:00
2024-09-01 12:50:17 -04:00
2024-01-17 16:02:33 +00:00
2024-09-03 08:44:16 -07:00
2024-02-21 11:20:06 -08:00
2024-07-11 14:53:03 -07:00
2024-02-09 14:18:37 -08:00
2024-08-28 12:43:42 +01:00
2024-04-15 16:46:00 -07:00
2024-01-30 06:27:54 +09:00
2023-10-10 17:42:26 -07:00
2024-01-16 16:13:19 -08:00
2023-12-09 08:13:50 -08:00
2023-09-12 20:37:50 +03:00
2024-07-30 15:57:57 -07:00
2024-08-30 15:24:00 -04:00
2024-07-10 22:57:15 -07:00
2023-11-13 22:37:54 -08:00
2024-06-17 11:36:52 -07:00
2023-06-02 11:54:05 -07:00
2024-08-09 10:01:25 -04:00
2024-08-26 11:49:42 -07:00
2024-08-06 15:45:45 -07:00
2023-07-25 11:34:25 -07:00
2024-07-10 22:57:15 -07:00
2024-07-06 12:05:45 -04:00
2024-05-16 13:40:13 -07:00
2024-02-20 07:55:16 -08:00
2024-02-21 11:20:06 -08:00
2023-05-24 09:55:35 -07:00
2024-02-21 11:20:06 -08:00
2024-08-24 21:31:41 -07:00
2024-08-24 21:31:41 -07:00
2024-07-06 22:56:30 +01:00
2023-10-09 14:05:45 -07:00
2024-08-20 14:02:00 -07:00
2024-04-10 09:38:02 -07:00
2024-06-17 11:36:52 -07:00
2024-08-14 12:31:55 -07:00
2023-05-31 16:06:09 -07:00
2024-02-21 11:20:06 -08:00
2024-08-28 18:31:51 +01:00
2023-10-09 20:29:03 +01:00
2024-06-11 15:52:41 -07:00
2024-02-21 11:20:06 -08:00
2024-03-13 22:25:47 -07:00
2024-07-06 23:35:39 -04:00
2024-07-06 12:05:46 -04:00
2024-04-04 14:20:28 -07:00
2024-06-10 07:10:38 -07:00
2024-02-29 18:13:28 -05:00
2023-07-25 12:28:28 -07:00
2024-06-13 18:00:45 -07:00
2024-08-23 14:23:37 +01:00
2024-05-03 15:56:25 -07:00
2024-02-21 11:20:06 -08:00
2024-02-23 20:04:51 -08:00
2024-08-26 16:24:57 -07:00
2024-07-06 23:35:46 -04:00
2024-08-07 18:17:10 -07:00
2024-08-14 19:59:05 +01:00
2023-09-01 14:32:14 +01:00
2023-09-11 23:56:38 -07:00
2024-08-29 16:18:14 -04:00
2024-05-08 16:08:02 +01:00
2023-08-17 11:03:11 -07:00
2023-08-17 09:55:49 -07:00
2024-02-21 11:20:06 -08:00
2024-06-12 13:36:06 +01:00
2024-08-28 18:31:51 +01:00
2024-07-03 11:41:06 +01:00
2024-08-19 14:33:07 -07:00
2024-08-23 14:23:37 +01:00
2024-03-02 08:28:47 +03:00
2024-01-23 15:20:22 -08:00
2023-12-07 22:14:23 -08:00
2023-10-06 21:04:03 +02:00
2023-12-08 22:30:37 -08:00
2023-05-31 15:37:46 -07:00
2024-04-04 12:37:23 +09:00
2024-07-10 14:20:03 -07:00
2024-07-10 14:20:03 -07:00
2024-09-01 18:03:47 -04:00
2024-08-22 18:42:19 -04:00
2024-02-05 15:27:25 +00:00
2024-02-21 11:20:06 -08:00