Nikita Popov
83879f4f53
[SimplifyCFG] Don't block sinking for allocas if no phi created ( #104579 )
...
SimplifyCFG sinking currently does not sink loads/stores of allocas,
because historically SROA was unable to handle the resulting IR. Since
then, SROA both learned to speculate loads/stores over selects and phis,
*and* SimplifyCFG sinking has been deferred to the end of the function
simplification pipeline, which means that SROA happens before it.
As such, I believe that this workaround should no longer be necessary.
Given how sensitive SimplifyCFG sinking seems to be, this patch takes a
very conservative step towards removing this, by allowing sinking if we
don't actually need to form a phi over the pointer argument.
This fixes https://github.com/llvm/llvm-project/issues/104567 , where
sinking a store to an escaped alloca allows converting a switch into
arithmetic.
2024-08-19 09:55:30 +02:00
..
2024-02-05 14:07:09 +01:00
2024-02-22 17:31:37 -06:00
2024-03-23 15:02:27 +08:00
2024-04-16 22:52:19 +08:00
2024-03-13 11:49:16 +01:00
2024-04-23 13:49:18 +02:00
2024-05-14 10:49:35 +01:00
2024-05-14 10:49:35 +01:00
2024-02-22 17:31:37 -06:00
2024-06-14 08:51:56 +01:00
2024-02-22 11:48:06 -06:00
2024-07-08 14:01:32 +01:00
2024-08-19 09:55:30 +02:00
2024-03-19 16:22:30 -05:00
2023-10-23 11:55:42 -05:00
2024-08-01 11:07:23 -05:00
2024-02-05 14:07:09 +01:00
2024-02-05 14:07:09 +01:00
2024-02-05 14:07:09 +01:00
2024-05-01 16:52:04 +02:00
2024-02-05 14:07:09 +01:00
2022-12-19 12:53:32 +01:00
2024-06-21 08:34:04 +02:00
2024-03-23 15:02:27 +08:00
2024-03-23 15:02:27 +08:00
2024-03-23 15:02:27 +08:00
2024-03-23 15:02:27 +08:00
2024-05-01 16:46:41 -05:00
2024-08-01 11:12:47 -05:00
2024-03-23 15:02:27 +08:00
2024-02-10 14:42:50 -06:00
2022-12-19 12:53:32 +01:00
2024-01-24 09:30:33 -06:00
2024-01-24 09:30:33 -06:00
2024-03-06 08:17:02 -06:00
2024-02-20 15:29:05 -06:00
2024-03-18 10:37:59 -04:00
2024-02-21 19:50:29 -06:00
2024-03-01 01:06:42 -05:00
2024-03-01 01:06:42 -05:00
2024-02-29 16:57:33 -06:00
2024-02-05 14:07:09 +01:00
2024-08-13 13:30:20 +05:30
2024-08-05 13:31:12 +05:30
2024-02-05 14:07:09 +01:00
2023-11-03 10:46:07 +01:00
2024-02-10 14:42:50 -06:00
2023-11-03 10:46:07 +01:00
2024-05-26 16:26:10 -05:00
2024-02-22 17:31:37 -06:00
2023-11-16 11:12:10 +00:00
2024-06-14 08:51:56 +01:00
2024-06-04 08:31:03 +02:00
2024-02-21 19:50:29 -06:00
2024-02-10 14:42:50 -06:00
2024-02-05 14:07:09 +01:00
2024-02-05 14:07:09 +01:00
2023-11-16 11:12:10 +00:00
2024-02-05 14:07:09 +01:00
2024-02-05 14:07:09 +01:00
2024-06-26 09:56:09 +08:00
2024-06-26 09:56:09 +08:00
2024-06-26 09:56:09 +08:00
2024-06-26 09:56:09 +08:00
2024-06-26 09:56:09 +08:00
2024-07-24 12:06:35 +08:00
2024-06-26 09:56:09 +08:00
2024-08-15 19:03:27 +08:00
2024-06-26 09:56:09 +08:00
2024-06-26 09:56:09 +08:00
2024-07-24 12:11:58 +08:00
2024-08-05 17:44:05 +08:00
2024-06-26 09:56:09 +08:00
2024-07-25 19:16:23 +08:00
2024-06-26 09:56:09 +08:00
2024-07-24 12:06:10 +08:00
2024-02-22 17:31:37 -06:00
2024-07-15 15:11:06 +08:00
2024-02-05 14:07:09 +01:00
2024-02-29 16:57:33 -06:00
2024-02-05 14:07:09 +01:00
2024-02-05 14:07:09 +01:00
2024-02-05 14:07:09 +01:00
2024-02-05 14:07:09 +01:00
2024-02-14 13:10:18 -06:00
2024-06-14 08:51:56 +01:00
2024-02-05 14:07:09 +01:00