hev
ea10026b64
Reland "[LoongArch] Add isSafeToMove hook to prevent unsafe instruction motion" ( #167465 )
...
This patch introduces a new virtual method
`TargetInstrInfo::isSafeToMove()` to allow backends to control whether a
machine instruction can be safely moved by optimization passes.
The `BranchFolder` pass now respects this hook when hoisting common
code. By default, all instructions are considered safe to to move.
For LoongArch, `isSafeToMove()` is overridden to prevent
relocation-related instruction sequences (e.g. PC-relative addressing
and calls) from being broken by instruction motion. Correspondingly,
`isSchedulingBoundary()` is updated to reuse this logic for consistency.
Relands #163725
2025-11-12 08:51:08 +08:00
..
2025-10-31 10:25:51 +08:00
2025-11-05 20:36:38 +08:00
2025-11-03 10:14:33 +08:00
2025-05-07 14:30:47 +08:00
2025-05-20 18:28:08 +08:00
2025-05-20 18:28:08 +08:00
2025-03-21 10:15:31 +08:00
2024-07-22 15:10:21 +08:00
2025-05-20 18:28:08 +08:00
2025-05-20 18:28:08 +08:00
2025-05-20 18:28:08 +08:00
2025-06-09 11:15:41 +08:00
2025-06-09 11:15:41 +08:00
2025-05-20 18:28:08 +08:00
2025-09-01 15:12:14 +08:00
2024-08-08 23:05:38 +08:00
2024-05-14 20:23:04 +08:00
2025-05-20 18:28:08 +08:00
2024-05-14 20:23:04 +08:00
2024-05-14 20:23:04 +08:00
2025-05-20 18:28:08 +08:00
2024-05-14 20:23:04 +08:00
2025-05-28 11:06:08 +08:00
2024-05-14 20:23:04 +08:00
2025-05-20 18:28:08 +08:00
2025-05-20 18:28:08 +08:00
2025-05-20 18:28:08 +08:00
2025-05-20 18:28:08 +08:00
2025-07-18 16:12:11 +08:00
2025-10-13 09:20:56 +08:00
2025-09-22 18:05:16 +08:00
2025-03-21 10:15:31 +08:00
2025-03-21 10:15:31 +08:00
2025-08-25 14:15:58 +08:00
2025-07-18 16:12:11 +08:00
2025-05-07 14:30:47 +08:00
2024-05-14 20:23:04 +08:00
2024-07-23 15:14:20 +08:00
2025-05-23 09:30:29 +08:00
2025-06-16 15:55:26 +01:00
2025-05-20 18:28:08 +08:00
2025-05-07 14:30:47 +08:00
2025-09-22 18:05:16 +08:00
2025-03-21 10:15:31 +08:00
2025-03-21 10:15:31 +08:00
2024-05-14 20:23:04 +08:00
2024-11-11 16:46:22 +08:00
2025-05-07 14:30:47 +08:00
2025-07-18 16:12:11 +08:00
2024-06-12 17:41:26 +08:00
2025-05-20 18:28:08 +08:00
2024-11-21 16:52:38 +08:00
2025-03-21 10:15:31 +08:00
2025-11-10 11:43:37 +08:00
2025-11-10 11:43:37 +08:00
2025-05-20 18:28:08 +08:00
2025-05-20 18:28:08 +08:00
2025-05-07 14:30:47 +08:00
2025-05-20 18:28:08 +08:00
2025-08-19 09:48:51 +08:00
2025-05-07 14:30:47 +08:00
2024-08-09 14:08:32 +08:00
2025-09-22 18:05:16 +08:00
2025-03-21 10:15:31 +08:00
2025-06-03 14:25:46 +08:00
2025-05-07 14:30:47 +08:00
2025-05-09 16:26:08 +08:00
2025-05-07 14:30:47 +08:00
2025-05-07 14:30:47 +08:00
2025-03-21 10:15:31 +08:00
2025-05-07 14:30:47 +08:00
2025-07-18 16:12:11 +08:00
2024-05-14 20:23:04 +08:00
2025-05-07 14:30:47 +08:00
2025-09-22 18:05:16 +08:00
2025-05-07 14:30:47 +08:00
2024-05-14 20:23:04 +08:00
2024-05-14 20:23:04 +08:00
2024-05-14 20:23:04 +08:00
2024-05-14 20:23:04 +08:00
2024-10-31 15:58:15 +08:00
2025-03-21 10:15:31 +08:00
2024-08-08 23:05:38 +08:00
2024-08-08 23:05:38 +08:00
2024-08-30 16:38:42 +08:00
2024-10-31 15:58:15 +08:00
2025-06-25 21:00:29 +08:00
2024-05-14 20:23:04 +08:00
2025-09-18 10:06:33 +08:00
2025-05-23 11:14:41 +08:00
2024-05-14 20:23:04 +08:00
2024-05-14 20:23:04 +08:00
2024-05-14 20:23:04 +08:00
2024-05-14 20:23:04 +08:00
2024-05-14 20:23:04 +08:00
2024-05-14 20:23:04 +08:00
2025-05-20 18:28:08 +08:00
2024-10-31 15:58:15 +08:00
2025-03-21 10:15:31 +08:00
2024-05-14 20:23:04 +08:00
2024-05-14 20:23:04 +08:00
2024-05-14 20:23:04 +08:00
2024-06-07 15:39:05 +08:00
2025-07-18 16:12:11 +08:00
2024-05-14 20:23:04 +08:00
2024-06-07 15:39:05 +08:00
2025-06-07 15:33:58 +08:00
2025-06-03 14:25:46 +08:00
2025-06-03 14:25:46 +08:00
2025-11-12 08:51:08 +08:00
2025-01-31 14:05:34 -08:00
2025-05-20 18:28:08 +08:00
2025-11-06 14:02:55 +08:00
2024-05-14 20:23:04 +08:00
2024-05-14 20:23:04 +08:00
2024-05-14 20:23:04 +08:00
2025-03-21 10:15:31 +08:00
2025-08-18 20:15:49 +08:00
2025-07-26 14:24:39 +08:00
2025-07-26 14:24:39 +08:00
2024-05-14 20:23:04 +08:00
2025-08-12 09:56:51 +09:00
2025-07-03 07:48:08 -04:00
2025-11-10 11:43:37 +08:00
2025-08-29 16:42:31 +08:00
2025-08-29 16:42:31 +08:00
2024-11-06 19:30:57 +08:00
2025-09-29 09:02:35 +08:00
2025-01-20 10:00:05 +08:00
2025-01-20 10:00:05 +08:00
2025-03-21 10:15:31 +08:00
2025-03-21 10:15:31 +08:00
2024-05-14 20:23:04 +08:00
2025-05-07 14:30:47 +08:00
2025-06-07 15:33:58 +08:00
2025-09-03 16:27:15 +02:00
2024-05-14 20:23:04 +08:00
2024-05-14 20:23:04 +08:00
2025-08-29 16:42:31 +08:00
2025-04-16 14:12:00 +08:00
2025-01-20 16:11:09 +08:00
2025-01-03 16:43:39 +08:00
2024-06-12 22:02:47 +08:00
2024-05-14 20:23:04 +08:00
2025-05-20 18:28:08 +08:00
2024-07-16 20:56:18 +01:00
2025-09-01 15:12:14 +08:00
2025-05-20 18:28:08 +08:00
2024-05-14 20:23:04 +08:00
2025-03-21 10:15:31 +08:00
2025-05-20 18:28:08 +08:00
2025-03-21 10:15:31 +08:00
2025-11-06 14:02:55 +08:00
2025-05-20 18:28:08 +08:00
2025-05-07 14:30:47 +08:00
2025-06-07 15:33:58 +08:00
2025-05-07 14:30:47 +08:00
2025-03-21 10:15:31 +08:00
2025-07-15 15:50:54 +09:00
2025-07-18 16:12:11 +08:00
2025-07-18 16:12:11 +08:00
2024-10-31 15:58:15 +08:00
2025-05-07 14:30:47 +08:00
2025-11-06 14:02:55 +08:00
2025-03-21 10:15:31 +08:00
2025-09-22 18:05:16 +08:00
2025-09-22 18:05:16 +08:00
2024-05-16 16:54:18 +08:00
2024-05-14 20:23:04 +08:00
2024-05-14 20:23:04 +08:00
2025-05-07 14:30:47 +08:00
2024-05-14 20:23:04 +08:00
2025-05-20 18:28:08 +08:00
2024-07-31 17:18:27 -07:00
2024-05-14 20:23:04 +08:00
2025-07-18 16:12:11 +08:00
2025-07-18 16:12:11 +08:00
2025-09-22 18:05:16 +08:00
2025-08-18 20:15:49 +08:00
2024-05-14 20:23:04 +08:00