Wang Pengcheng
a2af374284
[SelectionDAG] Add space-optimized forms of OPC_CheckPredicate ( #77763 )
...
We record the usage of each `Predicate` and sort them by usage.
For the top 8 `Predicate`s, we will emit a `PC_CheckPredicateN` to
save one byte.
Overall this reduces the llc binary size with all in-tree targets by
about 61K.
This is a recommit of 1a57927, which was reverted in bc98c31.
The CI failures occurred when doing expensive checks (with option
`LLVM_ENABLE_EXPENSIVE_CHECKS` being ON).
The key point here is that we need stable sorting result in the
test, but doing expensive checks uncovered the non-determinism of
`llvm::sort`. So `llvm::sort` is changed to `llvm::stable_sort`
in this revised patch.
And we use `llvm::MapVector` to keep insertion order.
2024-01-12 11:38:05 +08:00
..
2022-12-07 14:37:08 -05:00
2024-01-09 17:55:21 +03:00
2023-08-20 21:46:36 -07:00
2021-11-03 11:55:07 +00:00
2023-08-24 19:21:36 -07:00
2024-01-12 11:38:05 +08:00
2022-06-30 10:37:58 -07:00
2023-01-17 11:56:43 -08:00
2021-06-23 13:27:37 +07:00
2021-04-30 11:31:06 -04:00
2022-06-10 19:13:59 -07:00
2022-09-19 14:22:43 +08:00
2022-11-20 20:52:13 +01:00
2021-11-03 11:55:07 +00:00
2022-09-27 23:48:16 -07:00
2022-09-27 23:48:16 -07:00
2022-09-27 23:48:16 -07:00
2022-09-27 23:48:16 -07:00
2022-09-27 23:48:16 -07:00
2022-09-27 23:48:16 -07:00
2022-09-27 23:48:16 -07:00
2023-12-13 08:48:56 +01:00
2024-01-11 15:28:12 +08:00
2023-12-12 17:45:32 +08:00
2023-12-12 17:45:32 +08:00
2023-11-27 11:08:28 +08:00
2023-12-12 17:45:32 +08:00
2023-12-13 09:09:32 +01:00
2021-11-03 11:55:07 +00:00
2023-05-24 12:44:14 +08:00
2023-06-27 11:09:23 -07:00
2023-10-19 09:26:36 +02:00
2021-09-23 23:07:35 -04:00
2022-06-23 11:11:47 +08:00
2022-06-23 11:11:47 +08:00
2022-06-23 11:11:47 +08:00
2023-03-03 11:29:47 -08:00
2021-04-13 15:14:56 -07:00
2021-04-28 09:51:00 -04:00
2022-01-14 10:55:00 +00:00
2023-09-25 19:32:59 +08:00
2022-07-20 15:56:17 +02:00
2022-06-29 00:59:16 -07:00
2023-02-22 03:56:55 -05:00
2024-01-10 06:59:38 -08:00
2023-12-13 08:48:56 +01:00
2023-12-13 08:48:56 +01:00
2023-12-13 08:48:56 +01:00
2023-12-13 08:48:56 +01:00
2023-12-13 09:09:32 +01:00
2023-12-13 08:48:56 +01:00
2023-12-13 08:48:56 +01:00
2023-12-13 09:09:32 +01:00
2023-12-13 08:48:56 +01:00
2023-12-13 08:48:56 +01:00
2023-12-13 08:48:56 +01:00
2023-12-13 08:48:56 +01:00
2023-12-13 08:48:56 +01:00
2023-12-13 08:48:56 +01:00
2024-01-10 14:18:00 +07:00
2023-12-13 08:48:56 +01:00
2023-12-13 08:48:56 +01:00
2023-12-13 08:48:56 +01:00
2023-12-13 09:09:32 +01:00
2023-12-13 09:09:32 +01:00
2023-12-13 08:48:56 +01:00
2023-12-13 08:48:56 +01:00
2023-12-13 09:09:32 +01:00
2023-12-13 09:09:32 +01:00
2023-12-13 08:48:56 +01:00
2023-12-13 08:48:56 +01:00
2023-03-14 13:00:38 -07:00
2023-03-14 13:00:38 -07:00
2023-03-10 15:50:11 -08:00
2021-11-03 11:55:07 +00:00
2023-12-13 08:48:56 +01:00
2023-12-13 08:48:56 +01:00
2022-06-10 19:13:59 -07:00
2023-06-21 21:36:22 -04:00
2023-03-20 06:48:14 +09:00
2021-11-03 11:55:07 +00:00
2023-05-17 10:48:52 +02:00
2022-12-09 15:03:18 +00:00
2023-04-26 23:47:16 +09:00
2023-04-26 23:47:16 +09:00
2023-05-17 17:03:15 +02:00
2024-01-05 22:44:04 +08:00
2022-10-26 09:16:32 -07:00
2023-03-07 15:04:09 -05:00
2022-06-10 19:13:59 -07:00
2021-06-30 10:53:39 +01:00
2023-07-20 16:03:17 +08:00
2023-09-07 12:42:22 -07:00
2023-09-07 12:42:22 -07:00
2023-09-07 12:42:22 -07:00
2021-05-13 10:17:45 -04:00
2021-11-03 11:55:07 +00:00
2024-01-12 11:38:05 +08:00
2023-09-27 12:07:36 +08:00
2023-09-27 12:07:36 +08:00
2022-09-27 23:48:16 -07:00
2022-12-07 14:37:08 -05:00
2023-07-27 10:42:21 +01:00
2023-03-31 06:00:54 +09:00
2021-08-31 22:29:11 -04:00
2023-10-11 13:11:48 +02:00
2022-09-27 23:48:16 -07:00
2023-03-07 12:41:56 +00:00
2023-08-03 17:22:34 +08:00
2021-11-03 11:55:07 +00:00
2023-02-09 16:14:38 +08:00
2023-02-09 16:14:38 +08:00
2023-02-09 16:14:38 +08:00
2023-02-09 16:14:38 +08:00
2023-10-26 14:43:38 +02:00
2023-10-20 07:21:24 +02:00
2021-11-03 11:55:07 +00:00
2024-01-05 17:16:55 +08:00
2023-04-11 08:17:55 -04:00