Chris Tate
0cf5e87b03
Keep union locals copied between locals in private storage
...
A union local that is copied to another local (`const t = pp[p0]; p0 = t`)
was a whole-value use, so both locals held heap boxes: every number[]
read held in such a local allocated a `%ScrUnion`, and every copy
retained and released it.
Call lifetimes now record statement copies between union locals
(copiedLocals) instead of rejecting the source. Local union storage
takes a copied local when every local it is copied to also has private
storage, so the copy snapshots the tag and bits and the source's box
stays private. Copies in expression position and copies of parameters
keep the heap path.
An element assignment of a `T | undefined` binding with a computed index
holds the index in one temporary ahead of its two stores, so the key
conversion of a union index declares its temporary once.
2026-10-28 01:56:14 -05:00
..
2026-10-26 11:27:36 -05:00
2026-10-28 01:56:14 -05:00
2026-10-22 13:11:34 -05:00
2026-10-20 00:21:45 -05:00
2026-10-20 00:21:45 -05:00
2026-10-25 04:54:28 -05:00
2026-10-27 15:22:07 -07:00
2026-10-26 07:28:50 -05:00
2026-10-22 04:44:34 -05:00
2026-10-26 21:49:14 -05:00
2026-10-20 17:56:44 -05:00
2026-10-25 09:59:43 -05:00
2026-10-22 09:55:01 -05:00
2026-10-25 17:42:53 -05:00
2026-10-27 10:32:32 -05:00
2026-10-21 21:55:47 -05:00
2026-10-25 10:07:50 -05:00
2026-10-23 20:13:09 -05:00
2026-10-23 21:34:14 -05:00
2026-10-17 19:11:33 -05:00
2026-10-27 15:09:42 -07:00
2026-10-22 20:33:09 -05:00
2026-10-25 05:23:35 -05:00
2026-10-22 06:11:52 -05:00
2026-10-26 01:47:16 -05:00
2026-10-24 16:26:38 -05:00
2026-10-27 13:49:48 -05:00
2026-10-26 21:49:14 -05:00
2026-10-22 20:36:52 -05:00
2026-10-25 07:46:24 -05:00
2026-10-25 18:53:50 -05:00
2026-10-23 20:45:37 -05:00
2026-10-18 15:11:32 -07:00
2026-10-26 21:04:31 -05:00
2026-10-23 09:25:07 -05:00
2026-10-18 15:11:32 -07:00
2026-10-27 11:45:13 -07:00
2026-10-25 16:58:11 -05:00
2026-10-25 19:42:59 -05:00
2026-10-18 15:19:39 -07:00
2026-10-26 21:49:14 -05:00
2026-10-22 03:44:38 -05:00
2026-10-27 23:02:33 -05:00
2026-10-17 12:08:06 -07:00
2026-10-26 02:57:52 -05:00
2026-10-27 08:31:01 -05:00
2026-10-27 07:57:22 -05:00
2026-10-25 02:15:04 -05:00
2026-10-23 20:02:25 -05:00
2026-10-23 22:08:02 -05:00
2026-10-23 17:41:28 -07:00
2026-10-24 22:34:45 -05:00
2026-10-26 21:39:18 -05:00
2026-10-20 16:42:01 -07:00
2026-10-25 00:44:25 -05:00
2026-10-23 13:20:59 -05:00
2026-10-26 23:41:46 -05:00
2026-10-18 15:11:32 -07:00
2026-10-25 19:48:38 -05:00
2026-10-23 21:30:21 -05:00
2026-10-20 17:56:44 -05:00
2026-10-25 23:22:35 -05:00
2026-10-27 07:44:34 -05:00
2026-10-25 03:25:37 -05:00
2026-10-19 07:55:06 -05:00
2026-10-23 10:16:30 -05:00
2026-10-18 07:31:43 -07:00
2026-10-18 07:31:43 -07:00
2026-10-20 17:56:44 -05:00
2026-10-20 17:56:44 -05:00
2026-10-26 02:48:03 -05:00
2026-10-23 18:11:49 -05:00
2026-10-24 15:56:52 -05:00
2026-10-27 20:49:11 -05:00
2026-10-27 20:49:11 -05:00
2026-10-25 15:36:08 -05:00
2026-10-27 21:43:36 -05:00
2026-10-25 15:36:08 -05:00
2026-10-27 10:49:22 -05:00
2026-10-23 00:05:57 -05:00
2026-10-27 00:28:04 -05:00
2026-10-22 19:32:49 -07:00
2026-10-22 11:46:21 -05:00
2026-10-26 10:19:25 -05:00
2026-10-23 22:59:39 -05:00
2026-10-16 20:13:00 -05:00
2026-10-27 15:09:52 -07:00
2026-10-27 13:31:11 -05:00
2026-10-22 08:03:32 -05:00
2026-10-26 08:30:42 -05:00
2026-10-25 13:35:04 -05:00
2026-10-25 06:42:25 -05:00
2026-10-22 08:16:36 -05:00
2026-10-25 13:13:02 -05:00
2026-10-24 13:20:02 -05:00
2026-10-26 23:41:46 -05:00
2026-10-20 17:56:44 -05:00
2026-10-27 08:41:05 -05:00
2026-10-26 15:31:14 -05:00
2026-10-18 15:11:32 -07:00
2026-10-21 13:12:24 -05:00
2026-10-23 22:40:04 -05:00
2026-10-25 13:00:18 -05:00
2026-10-24 22:53:15 -05:00
2026-10-25 07:37:50 -05:00
2026-10-16 14:02:02 -07:00
2026-10-23 18:26:12 -05:00
2026-10-27 09:11:51 -07:00
2026-10-17 13:32:48 -07:00
2026-10-22 03:44:38 -05:00
2026-10-25 19:42:02 -05:00
2026-10-25 15:18:27 -05:00
2026-10-24 21:50:36 -05:00
2026-10-23 19:28:30 -05:00
2026-10-20 11:00:03 -05:00
2026-10-19 23:38:15 -05:00
2026-10-27 16:44:46 -07:00
2026-10-22 09:32:19 -05:00
2026-10-26 11:12:57 -05:00
2026-10-24 00:43:56 -05:00
2026-10-18 15:19:39 -07:00
2026-10-18 15:19:39 -07:00
2026-10-24 18:32:42 -05:00
2026-10-24 12:37:29 -05:00
2026-10-24 13:32:14 -05:00
2026-10-25 22:44:42 -05:00