Erik Eckstein
8aa911ba2f
Optimizer: add simplifications for destroy_value
...
Attempt to optimize by forwarding the destroy to operands of forwarding instructions.
```
%3 = struct $S (%1, %2)
destroy_value %3 // the only use of %3
```
->
```
destroy_value %1
destroy_value %2
```
The benefit of this transformation is that the forwarding instruction can be removed.
Also, handle `destroy_value` for phi arguments.
This is a more complex case where the destroyed value comes from different predecessors via a phi argument.
The optimization moves the `destroy_value` to each predecessor block.
```
bb1:
br bb3(%0)
bb2:
br bb3(%1)
bb3(%3 : @owned T):
... // no deinit-barriers
destroy_value %3 // the only use of %3
```
->
```
bb1:
destroy_value %0
br bb3
bb2:
destroy_value %1
br bb3
bb3:
...
```
2025-12-03 15:53:55 +01:00
..
2025-10-04 14:19:52 -07:00
2025-11-20 18:13:50 -05:00
2025-10-29 19:35:55 -07:00
2024-06-28 16:08:37 -07:00
2023-10-10 09:09:22 -07:00
2024-10-19 12:35:20 -07:00
2025-09-30 08:36:26 -07:00
2024-02-19 02:48:37 -10:00
2024-09-06 15:19:34 -07:00
2024-10-19 12:35:20 -07:00
2024-10-19 12:35:20 -07:00
2025-09-11 07:22:22 +00:00
2024-11-02 11:46:46 -07:00
2024-05-20 17:22:47 -07:00
2025-09-30 08:36:32 -07:00
2024-10-19 12:35:20 -07:00
2024-11-02 11:46:46 -07:00
2025-10-22 16:05:39 -07:00
2022-06-12 20:25:16 -07:00
2023-06-20 13:15:20 -07:00
2025-10-04 14:19:52 -07:00
2023-02-01 22:04:33 -08:00
2024-11-21 18:49:52 +01:00
2024-11-21 18:49:52 +01:00
2025-10-20 09:05:38 -07:00
2025-10-04 14:19:52 -07:00
2025-10-16 10:52:05 -07:00
2025-09-23 15:26:02 -07:00
2025-09-09 12:07:52 +01:00
2025-08-29 22:31:04 +02:00
2024-02-29 15:27:10 -08:00
2023-04-26 12:38:38 +01:00
2024-11-21 18:49:52 +01:00
2024-10-18 10:11:36 -07:00
2025-06-05 06:45:18 +02:00
2025-11-07 17:06:33 -08:00
2022-03-24 16:20:01 -07:00
2025-09-26 08:01:08 +02:00
2024-10-19 12:35:20 -07:00
2025-06-07 12:49:01 -07:00
2022-03-23 12:38:59 -07:00
2025-10-04 14:19:52 -07:00
2025-10-21 09:08:58 -07:00
2025-10-04 14:19:52 -07:00
2024-11-21 18:49:52 +01:00
2025-12-03 15:53:55 +01:00
2022-04-25 12:58:35 -07:00
2025-11-19 17:27:50 -08:00
2025-01-03 09:15:12 -08:00
2023-11-01 16:04:10 -07:00
2025-11-11 13:03:16 -08:00
2022-01-24 21:03:32 -08:00
2024-02-24 08:33:28 -10:00
2025-06-07 12:49:01 -07:00
2025-10-01 17:59:57 -07:00
2024-05-20 17:22:47 -07:00
2022-09-04 07:02:59 +03:00
2023-07-31 13:18:59 -07:00
2025-10-29 19:35:55 -07:00
2025-10-29 19:35:55 -07:00
2025-04-13 15:42:00 -07:00
2025-05-23 00:20:18 -07:00
2024-07-23 10:32:50 -07:00
2025-03-21 15:45:53 -07:00
2025-10-04 14:19:52 -07:00
2025-06-23 13:42:54 -07:00
2025-10-01 12:56:37 -07:00
2024-11-05 14:37:56 -08:00
2022-10-30 17:08:06 -07:00
2024-02-19 02:48:37 -10:00
2024-05-15 17:36:57 -07:00
2023-12-10 10:10:15 -08:00
2024-03-18 16:36:02 -07:00
2024-01-10 14:06:10 -08:00
2024-12-04 08:14:59 -08:00
2024-11-05 14:37:56 -08:00
2025-10-21 09:08:58 -07:00
2024-11-02 11:46:46 -07:00
2022-09-04 07:02:59 +03:00
2022-09-04 07:02:59 +03:00
2022-08-15 13:59:12 -04:00
2024-10-20 15:37:15 -07:00
2024-09-18 11:23:22 -07:00
2025-01-30 17:10:04 -08:00
2025-06-07 12:49:01 -07:00
2024-11-02 11:46:46 -07:00
2022-02-11 15:44:39 -08:00
2024-10-19 12:35:20 -07:00
2024-09-13 14:55:16 -07:00
2025-10-04 14:19:52 -07:00
2022-09-04 07:02:59 +03:00
2024-11-21 18:49:52 +01:00
2025-11-20 18:13:50 -05:00
2022-01-07 10:43:45 -08:00
2024-11-10 09:23:39 -08:00
2025-10-23 05:18:59 -07:00
2023-05-13 02:55:49 +03:00
2024-10-20 15:37:15 -07:00
2023-10-10 09:09:22 -07:00
2022-05-25 09:50:36 -07:00
2025-09-05 14:09:23 -07:00
2022-04-25 12:58:35 -07:00
2025-10-04 14:19:52 -07:00
2024-04-03 14:10:36 -04:00
2025-06-18 12:47:16 -07:00
2024-11-29 10:35:02 -05:00
2024-08-15 13:29:10 -07:00
2023-02-13 14:28:10 -08:00
2023-03-07 10:00:27 -08:00
2024-09-03 22:07:47 -07:00
2022-09-04 07:02:59 +03:00
2024-10-01 15:36:59 -07:00
2024-12-05 13:56:52 -08:00
2024-02-13 07:13:35 -08:00
2025-10-04 14:19:52 -07:00
2024-06-21 16:03:21 -07:00
2022-05-04 08:32:41 -07:00
2025-04-04 13:42:42 -07:00
2024-11-21 18:49:52 +01:00
2022-12-21 08:52:53 +01:00
2025-01-02 11:01:39 +01:00
2024-02-24 08:33:28 -10:00
2023-07-18 10:28:12 -07:00
2022-07-07 08:35:04 +02:00
2022-05-26 12:19:46 -07:00
2024-08-21 11:38:54 -07:00
2024-02-29 11:22:52 -08:00
2025-06-30 14:53:36 -07:00
2024-11-21 18:49:52 +01:00
2024-11-21 18:49:52 +01:00
2024-11-21 18:49:52 +01:00
2024-01-03 22:08:56 -08:00
2024-03-21 13:09:21 -04:00
2025-05-31 11:10:39 -07:00
2025-08-04 15:16:30 +01:00
2024-02-20 14:30:12 -08:00
2025-11-19 17:27:50 -08:00
2024-03-14 23:10:44 -07:00
2025-01-30 17:10:03 -08:00