Craig Topper
5cf0fb4317
[StackSlotColoring] Ignore non-spill objects in RemoveDeadStores. ( #80242 )
...
The stack slot coloring pass is concerned with optimizing spill
slots. If any change is a pass is made over the function to remove
stack stores that use the same register and stack slot as an
immediately preceding load.
The register check is too simple for constant registers like AArch64
and RISC-V's zero register. This register can be used as the result
of a load if we want to discard the result, but still have the memory
access performed. Like for a volatile or atomic load.
If the code sees a load from the zero register followed by a store
of the zero register at the same stack slot, the pass mistakenly
believes the store isn't needed.
Since the main stack coloring optimization is only concerned with
spill slots, it seems reasonable that RemoveDeadStores should
only be concerned with spills. Since we never generate a reload of
x0, this avoids the issue seen by RISC-V.
Test case concept is adapted from pr30821.mir from X86. That test
had to be updated to mark the stack slot as a spill slot.
Fixes #80052 .
2024-02-01 13:25:15 -08:00
..
2024-02-01 15:06:43 -05:00
2024-01-30 22:12:28 -08:00
2024-01-31 14:41:15 -08:00
2023-10-09 12:31:32 +01:00
2023-10-06 10:28:01 -07:00
2023-01-20 09:28:20 -08:00
2023-01-20 09:28:20 -08:00
2023-10-06 10:28:01 -07:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-10-18 15:01:17 +08:00
2023-09-26 12:26:35 +08:00
2023-09-26 12:26:35 +08:00
2024-01-07 12:09:44 -08:00
2022-12-19 13:01:08 +01:00
2022-12-19 13:01:08 +01:00
2023-04-07 08:59:28 +08:00
2024-01-07 12:09:44 -08:00
2023-07-24 16:52:04 +08:00
2023-10-06 10:28:01 -07:00
2022-12-19 13:01:08 +01:00
2024-01-10 12:00:40 -08:00
2023-03-30 20:47:28 +01:00
2024-01-10 12:41:11 -08:00
2023-02-09 12:00:05 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-31 15:37:41 -08:00
2024-01-31 15:37:41 -08:00
2024-01-07 12:09:44 -08:00
2024-02-01 10:58:21 -08:00
2024-01-07 12:09:44 -08:00
2023-08-03 07:06:57 +01:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-08-03 07:06:57 +01:00
2024-01-07 12:09:44 -08:00
2023-08-03 08:27:38 -07:00
2023-08-03 07:06:57 +01:00
2024-01-07 12:09:44 -08:00
2023-10-09 12:31:32 +01:00
2023-08-03 08:27:38 -07:00
2024-01-07 12:09:44 -08:00
2023-03-16 19:42:33 -07:00
2024-01-07 12:09:44 -08:00
2022-12-19 13:01:08 +01:00
2022-12-21 14:19:49 +03:00
2024-01-11 13:20:02 -08:00
2023-11-03 09:03:52 -07:00
2023-10-24 20:27:39 -07:00
2023-09-20 01:02:19 +08:00
2023-10-06 10:28:01 -07:00
2024-01-07 12:09:44 -08:00
2024-01-16 20:44:30 +08:00
2024-01-16 20:44:30 +08:00
2024-01-16 20:44:30 +08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-16 20:44:30 +08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-16 20:44:30 +08:00
2024-01-07 12:09:44 -08:00
2024-01-16 20:44:30 +08:00
2024-01-07 12:09:44 -08:00
2023-12-15 11:16:05 +08:00
2024-01-07 12:09:44 -08:00
2024-02-01 20:50:20 +08:00
2024-01-07 12:09:44 -08:00
2024-01-29 15:58:54 +00:00
2022-12-19 13:01:08 +01:00
2023-09-26 09:06:49 +08:00
2023-12-14 22:42:11 -08:00
2023-12-14 22:42:11 -08:00
2024-01-02 13:13:04 +08:00
2023-12-14 22:42:11 -08:00
2023-12-14 22:42:11 -08:00
2023-12-14 22:42:11 -08:00
2024-01-29 15:58:54 +00:00
2024-01-29 15:58:54 +00:00
2023-09-29 10:43:23 -07:00
2023-03-07 17:54:05 +08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2022-12-19 13:01:08 +01:00
2024-01-02 13:13:04 +08:00
2024-01-07 12:09:44 -08:00
2023-01-20 09:28:20 -08:00
2024-01-07 12:09:44 -08:00
2023-12-12 17:25:19 +09:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-05-25 14:13:37 +08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-11-13 07:38:14 +01:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-05-25 14:13:37 +08:00
2023-10-26 23:54:46 -07:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-10-26 23:54:46 -07:00
2024-01-02 13:13:04 +08:00
2024-01-07 12:09:44 -08:00
2023-10-31 17:52:50 -07:00
2023-02-23 01:26:27 +00:00
2023-09-11 15:11:01 -07:00
2023-10-09 12:31:32 +01:00
2024-01-07 12:09:44 -08:00
2022-12-19 13:01:08 +01:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-07-21 08:37:58 -07:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-12-15 11:16:05 +08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-02 13:13:04 +08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-05-03 00:13:38 +08:00
2023-08-01 09:51:24 -07:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-05-03 00:13:38 +08:00
2023-06-17 10:10:20 +08:00
2024-02-01 22:10:52 +08:00
2024-01-07 12:09:44 -08:00
2022-12-19 15:22:39 +08:00
2024-01-07 12:09:44 -08:00
2024-01-23 09:57:05 +08:00
2023-07-14 15:30:54 -04:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2022-12-22 14:19:26 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2022-12-19 13:01:08 +01:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-11-17 16:30:09 +00:00
2023-05-12 18:31:35 +10:00
2024-01-07 12:09:44 -08:00
2023-12-15 11:16:05 +08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-05-12 18:31:35 +10:00
2023-12-15 11:16:05 +08:00
2024-01-07 12:09:44 -08:00
2023-08-02 20:16:50 -07:00
2024-01-07 12:09:44 -08:00
2023-05-12 18:31:35 +10:00
2023-08-01 09:51:24 -07:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-10-09 12:31:32 +01:00
2024-01-02 13:13:04 +08:00
2023-10-31 17:52:50 -07:00
2023-10-03 18:16:13 +01:00
2024-01-07 12:09:44 -08:00
2023-01-09 16:46:28 +03:00
2022-12-06 10:31:17 -08:00
2022-12-06 10:31:17 -08:00
2023-11-13 22:45:33 +08:00
2023-03-01 15:33:45 +01:00
2022-12-19 13:01:08 +01:00
2023-11-29 21:53:32 -08:00
2022-12-19 13:01:08 +01:00
2024-01-02 13:13:04 +08:00
2023-12-27 21:36:03 -08:00
2023-03-27 17:29:28 -07:00
2023-03-27 17:29:28 -07:00
2024-01-22 17:36:32 +08:00
2024-02-01 10:18:42 -08:00
2024-02-01 10:18:42 -08:00
2023-03-27 17:29:28 -07:00
2023-08-21 18:59:52 +08:00
2023-05-26 18:39:41 +08:00
2023-05-31 20:31:24 -07:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-05-31 20:31:24 -07:00
2024-01-16 20:44:30 +08:00
2024-01-07 12:09:44 -08:00
2023-10-31 10:48:08 +00:00
2022-12-19 13:01:08 +01:00
2023-11-23 14:05:23 +08:00
2023-06-23 22:57:56 +00:00
2023-06-23 22:57:56 +00:00
2023-06-30 09:13:19 -07:00
2023-06-23 22:57:56 +00:00
2023-10-06 10:28:01 -07:00
2022-12-19 13:01:08 +01:00
2022-12-19 13:01:08 +01:00
2024-01-07 12:09:44 -08:00
2023-05-17 17:03:15 +02:00
2024-01-07 12:43:39 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-09-20 01:02:19 +08:00
2022-12-19 13:01:08 +01:00
2023-01-24 11:42:37 -08:00
2022-12-19 13:01:08 +01:00
2023-07-24 13:42:49 +08:00
2023-03-27 17:29:28 -07:00
2023-07-12 08:03:45 -07:00
2023-11-27 19:39:40 +01:00
2023-03-27 17:29:28 -07:00
2024-01-07 12:09:44 -08:00
2023-09-29 10:43:23 -07:00
2023-09-29 10:43:23 -07:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-09-29 10:43:23 -07:00
2023-09-29 10:43:23 -07:00
2023-09-29 10:43:23 -07:00
2024-01-07 12:09:44 -08:00
2023-12-22 14:49:59 +08:00
2024-01-07 12:43:39 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-12-01 11:00:59 -08:00
2024-01-07 12:09:44 -08:00
2023-12-01 11:00:59 -08:00
2023-10-09 12:31:32 +01:00
2024-01-07 12:43:39 -08:00
2024-01-16 07:17:41 +00:00
2024-01-07 12:09:44 -08:00
2023-03-27 17:29:28 -07:00
2024-01-07 12:09:44 -08:00
2022-12-19 13:01:08 +01:00
2024-01-02 13:13:04 +08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-08-10 17:04:49 +08:00
2023-08-10 17:04:49 +08:00
2023-11-30 21:12:46 -06:00
2023-11-30 21:12:46 -06:00
2024-01-08 10:59:06 -08:00
2023-12-14 22:42:11 -08:00
2023-12-14 22:42:11 -08:00
2024-01-09 11:24:21 -08:00
2023-12-14 22:42:11 -08:00
2022-12-19 13:01:08 +01:00
2024-01-30 22:12:28 -08:00
2024-01-07 12:43:39 -08:00
2022-12-19 13:01:08 +01:00
2024-01-07 12:09:44 -08:00
2024-01-09 10:42:34 -08:00
2023-11-17 16:18:44 +01:00
2022-12-19 13:01:08 +01:00
2024-01-07 12:09:44 -08:00
2023-12-01 11:00:59 -08:00
2023-06-06 17:39:05 -07:00
2022-12-19 13:01:08 +01:00
2022-12-19 13:01:08 +01:00
2023-06-13 09:14:37 +00:00
2023-06-18 23:40:47 +08:00
2024-01-07 12:09:44 -08:00
2023-09-13 12:33:39 +01:00
2023-08-15 12:11:08 +08:00
2023-08-17 15:13:36 -07:00
2023-08-24 04:18:17 +08:00
2023-08-28 10:11:12 -07:00
2023-10-19 13:28:53 +01:00
2023-10-14 06:38:17 +08:00
2024-01-24 11:30:12 +08:00
2024-02-01 13:25:15 -08:00
2023-10-20 14:22:48 +08:00
2023-08-14 16:06:09 -07:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-02 13:13:04 +08:00
2024-01-07 12:09:44 -08:00
2023-12-14 21:08:01 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-03-27 17:29:28 -07:00
2023-04-12 21:06:22 +00:00
2024-01-11 13:20:02 -08:00
2024-01-19 14:44:47 -08:00
2023-12-01 11:00:59 -08:00
2023-10-14 12:18:43 +08:00
2023-07-21 14:52:57 +01:00
2023-03-01 19:42:56 +00:00
2024-01-16 20:44:30 +08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-02 13:13:04 +08:00
2024-01-07 12:09:44 -08:00
2024-01-02 13:13:04 +08:00
2023-04-15 17:29:06 +08:00
2023-09-19 11:18:12 +01:00
2024-01-07 12:09:44 -08:00
2023-11-11 19:31:23 -08:00
2023-11-16 11:14:53 -08:00
2024-01-29 15:24:00 -08:00
2023-06-13 10:39:43 -07:00
2023-06-13 10:39:43 -07:00
2023-06-13 10:39:43 -07:00
2023-06-13 10:39:43 -07:00
2023-07-17 08:58:29 -07:00
2023-06-13 10:39:43 -07:00
2023-07-17 08:58:29 -07:00
2023-07-17 08:58:29 -07:00
2024-01-07 12:09:44 -08:00
2024-01-02 13:13:04 +08:00
2023-10-11 09:18:55 +05:30
2023-10-11 09:18:55 +05:30
2023-10-11 09:18:55 +05:30
2024-01-16 20:44:30 +08:00
2023-05-03 00:13:38 +08:00
2024-01-07 12:09:44 -08:00
2023-10-06 10:28:01 -07:00
2024-01-07 12:09:44 -08:00
2023-10-06 10:28:01 -07:00
2023-10-06 10:28:01 -07:00
2024-01-07 12:09:44 -08:00
2023-10-06 10:28:01 -07:00
2023-03-16 19:42:33 -07:00
2024-01-02 13:13:04 +08:00
2024-01-07 12:09:44 -08:00
2024-01-02 13:13:04 +08:00
2024-01-30 22:12:28 -08:00
2023-10-06 10:28:01 -07:00
2022-12-22 14:19:26 -08:00
2024-01-07 12:09:44 -08:00
2023-07-18 10:39:25 -07:00
2023-07-18 10:39:25 -07:00
2023-07-06 17:24:53 -07:00
2023-11-11 19:31:23 -08:00
2024-01-07 12:09:44 -08:00
2023-07-20 10:16:56 -04:00
2023-05-12 18:31:35 +10:00
2023-05-12 18:31:35 +10:00
2023-07-20 10:16:56 -04:00
2023-05-12 18:31:35 +10:00
2023-05-12 18:31:35 +10:00
2024-01-29 15:24:00 -08:00
2023-07-17 08:58:29 -07:00
2023-07-17 08:58:29 -07:00
2023-07-17 08:58:29 -07:00
2023-06-13 10:39:43 -07:00
2023-07-17 08:58:29 -07:00
2023-07-17 08:58:29 -07:00
2023-07-17 08:58:29 -07:00
2023-03-16 19:42:33 -07:00
2023-03-07 17:54:05 +08:00
2024-01-02 13:13:04 +08:00
2023-05-31 20:31:24 -07:00
2023-02-07 17:13:21 -08:00
2023-02-07 17:13:21 -08:00
2023-02-07 17:13:21 -08:00
2023-02-07 17:13:21 -08:00
2023-11-10 21:38:47 +08:00
2024-01-07 12:09:44 -08:00
2024-01-29 15:58:54 +00:00
2024-01-07 12:09:44 -08:00
2023-03-27 17:29:28 -07:00
2022-12-28 15:17:41 -08:00
2023-03-27 17:29:28 -07:00
2024-01-07 12:09:44 -08:00
2023-10-06 10:28:01 -07:00
2024-01-29 15:58:54 +00:00
2023-10-06 10:28:01 -07:00
2024-01-07 12:09:44 -08:00
2023-10-30 15:29:57 -07:00
2023-12-03 21:27:50 -08:00
2024-01-16 13:36:24 +07:00
2024-01-07 12:09:44 -08:00
2023-04-07 08:59:28 +08:00
2023-04-07 08:59:28 +08:00
2024-01-07 12:09:44 -08:00
2023-10-06 10:28:01 -07:00
2023-10-06 10:28:01 -07:00
2024-01-29 15:58:54 +00:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-12-20 09:42:14 +01:00
2022-12-06 11:34:48 -05:00
2023-10-06 10:28:01 -07:00
2022-12-19 13:01:08 +01:00
2024-01-17 08:11:06 +00:00
2023-08-16 07:35:00 -07:00
2023-10-19 11:00:39 +08:00
2023-10-07 10:38:35 -07:00
2024-01-07 12:09:44 -08:00
2023-01-31 12:47:48 +00:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-16 13:36:24 +07:00
2024-01-07 12:09:44 -08:00
2023-03-16 19:42:33 -07:00
2023-03-07 17:54:05 +08:00
2023-12-27 21:36:03 -08:00
2023-09-29 10:43:23 -07:00
2024-01-07 12:09:44 -08:00
2024-01-16 20:44:30 +08:00
2024-01-16 20:44:30 +08:00
2023-09-29 10:43:23 -07:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-03-27 17:29:28 -07:00
2024-01-02 13:13:04 +08:00
2022-12-19 13:01:08 +01:00
2024-02-01 20:50:20 +08:00
2024-01-16 20:44:30 +08:00
2022-12-19 13:01:08 +01:00
2024-01-23 16:16:07 -08:00
2022-12-19 13:01:08 +01:00
2023-03-16 19:42:33 -07:00
2023-01-20 09:28:20 -08:00
2023-10-09 12:31:32 +01:00
2023-12-01 11:00:59 -08:00
2024-01-07 12:09:44 -08:00
2024-01-02 13:13:04 +08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2024-01-07 12:09:44 -08:00
2023-03-16 19:42:33 -07:00
2023-01-20 09:28:20 -08:00
2024-01-16 20:44:30 +08:00
2024-01-16 20:44:30 +08:00
2024-01-07 12:43:39 -08:00
2023-09-29 10:43:23 -07:00
2024-01-07 12:09:44 -08:00
2023-05-26 10:48:49 -07:00
2022-12-19 13:01:08 +01:00
2023-10-09 12:31:32 +01:00
2023-10-09 12:31:32 +01:00
2024-01-29 15:58:54 +00:00
2023-12-17 19:29:40 +08:00
2023-03-27 17:29:28 -07:00
2023-02-17 19:45:22 +01:00
2023-02-24 00:17:58 +01:00
2023-02-22 19:57:37 +01:00
2024-01-07 12:09:44 -08:00
2024-01-23 09:33:06 -08:00
2023-08-29 22:06:30 -07:00
2024-01-07 12:09:44 -08:00
2023-11-17 16:17:48 +01:00
2023-08-10 10:48:43 +08:00
2023-12-13 09:37:25 -08:00
2023-07-24 10:37:58 +08:00
2024-01-07 12:09:44 -08:00
2023-05-12 18:31:35 +10:00
2024-01-07 12:09:44 -08:00
2023-05-12 18:31:35 +10:00
2023-05-12 18:31:35 +10:00