Peter Collingbourne
75bb30ddbf
Move {load,store}(llvm.protected.field.ptr) lowering to InstCombine.
...
The previous position of llvm.protected.field.ptr lowering for loads
and stores was problematic as it not only inhibited optimizations such
as DSE (as stores to a llvm.protected.field.ptr were not considered to
must-alias stores to the non-protected.field pointer) but also required
changes to other optimization passes to avoid transformations that would
reduce PFP coverage.
Address this by moving the load/store part of the lowering to
InstCombine, where it will run earlier than the PFP-breaking and
AA-relying transformations. The deactivation symbol, null comparison
and EmuPAC parts of the lowering remain in PreISelLowering.
Now that the transformation inhibitions are no longer needed, remove them
(i.e. partially revert #151649 , and revert #182976 ).
This change resulted in a 2.4% reduction in Fleetbench .text size and
the following improvements to PFP performance overhead for BM_PROTO_Arena
on various microarchitectures:
before after
Apple M2 Ultra 3.5% 3.3%
Google Axion C4A 3.3% 2.9%
Google Axion N4A 2.7% 2.2%
Reviewers: fmayer, nikic, vitalybuka
Reviewed By: fmayer
Pull Request: https://github.com/llvm/llvm-project/pull/186548
2026-04-06 17:47:24 -07:00
..
2026-03-06 14:48:01 +00:00
2026-04-06 14:40:54 +00:00
2025-12-09 16:11:26 +00:00
2026-02-05 13:31:26 +00:00
2026-03-09 16:56:17 +00:00
2026-01-08 12:55:39 +08:00
2026-02-16 17:30:03 +00:00
2025-09-12 15:07:25 -07:00
2025-12-11 11:11:00 +00:00
2026-03-06 14:48:01 +00:00
2025-09-10 16:51:58 +02:00
2026-01-09 10:31:11 +01:00
2025-08-08 15:23:02 +02:00
2026-01-29 02:49:55 +08:00
2026-02-07 20:41:58 +09:00
2026-02-05 21:09:06 -08:00
2025-10-13 10:13:34 +02:00
2026-02-07 20:41:58 +09:00
2026-03-06 14:48:01 +00:00
2025-09-12 20:01:17 +02:00
2025-12-17 12:07:40 +00:00
2026-02-27 19:13:57 +00:00
2026-03-10 23:33:01 +00:00
2026-02-07 03:09:27 +08:00
2026-03-06 14:48:01 +00:00
2026-02-13 18:17:00 +09:00
2026-01-11 13:23:27 -08:00
2026-04-06 11:30:36 -07:00
2026-03-06 14:48:01 +00:00
2026-02-03 19:30:48 +01:00
2025-09-25 18:00:18 +01:00
2026-03-02 13:58:08 +01:00
2026-03-06 14:48:01 +00:00
2026-03-02 13:58:08 +01:00
2026-03-21 20:45:29 +00:00
2026-01-11 13:23:27 -08:00
2026-03-26 18:14:58 +01:00
2026-03-04 10:23:57 +01:00
2026-02-10 09:49:31 +00:00
2025-12-29 12:17:36 +00:00
2025-08-04 14:51:03 +05:30
2026-02-19 21:35:31 +01:00
2025-10-23 20:31:31 +08:00
2026-01-27 23:18:53 -08:00
2025-08-08 11:09:34 +02:00
2025-08-08 11:09:34 +02:00
2025-08-08 11:09:34 +02:00
2025-11-19 01:15:26 +08:00
2026-03-06 14:48:01 +00:00
2026-03-06 14:48:01 +00:00
2026-02-03 19:14:27 +01:00
2026-03-06 14:48:01 +00:00
2026-03-06 14:48:01 +00:00
2025-11-25 17:43:26 +00:00
2025-10-16 11:27:47 +02:00
2026-03-06 14:48:01 +00:00
2025-11-25 17:43:26 +00:00
2025-10-05 16:15:51 +08:00
2026-02-03 19:14:27 +01:00
2026-02-05 13:31:26 +00:00
2025-08-08 11:09:34 +02:00
2025-08-04 13:54:44 +01:00
2026-01-11 13:23:27 -08:00
2026-03-06 14:48:01 +00:00
2025-10-24 09:03:40 +01:00
2026-02-19 21:35:31 +01:00
2026-02-05 13:31:26 +00:00
2025-10-25 00:40:11 +08:00
2026-02-05 19:20:32 -08:00
2025-08-08 11:09:34 +02:00
2025-11-10 13:13:49 +01:00
2026-03-06 14:48:01 +00:00
2026-01-28 09:56:07 -08:00
2025-11-05 10:04:32 +01:00
2026-02-06 12:30:32 +01:00
2025-07-18 14:40:54 -07:00
2026-02-03 19:14:27 +01:00
2026-01-20 16:26:40 +01:00
2026-03-17 14:17:44 +01:00
2026-02-10 09:49:31 +00:00
2026-02-05 13:31:26 +00:00
2026-01-25 18:06:36 -05:00
2026-03-30 14:19:05 +02:00
2026-01-25 18:06:36 -05:00
2026-03-26 20:18:15 +01:00
2025-12-11 11:11:00 +00:00
2025-12-05 16:23:41 +00:00
2026-02-05 13:31:26 +00:00
2026-01-28 09:56:07 -08:00
2026-02-10 09:49:31 +00:00
2026-03-30 11:44:43 +01:00
2026-02-03 08:27:18 +08:00
2026-02-19 21:35:31 +01:00
2026-03-19 20:45:56 +08:00
2025-09-12 12:16:31 -04:00
2025-07-19 17:52:06 +09:00
2026-02-02 09:58:58 +08:00
2025-07-16 10:03:25 +09:00
2026-01-22 20:49:34 +01:00
2025-12-12 12:55:55 +01:00
2025-10-27 17:00:42 -07:00
2026-04-02 21:04:29 +01:00
2025-07-31 12:32:37 +02:00
2025-10-21 11:55:21 +01:00
2025-11-05 10:04:32 +01:00
2026-02-22 14:22:56 -08:00
2026-01-15 00:01:58 +00:00
2025-09-09 13:59:35 +01:00
2025-10-02 01:11:51 +08:00
2026-02-22 14:22:56 -08:00
2026-03-17 04:07:48 +00:00
2025-12-30 00:05:49 +08:00
2026-02-10 09:49:31 +00:00
2025-10-01 22:02:08 +08:00
2026-03-06 14:48:01 +00:00
2026-03-06 14:48:01 +00:00
2026-03-06 14:48:01 +00:00
2026-03-06 14:48:01 +00:00
2026-03-06 14:48:01 +00:00
2026-03-06 14:48:01 +00:00
2026-03-06 14:48:01 +00:00
2026-03-18 09:47:51 -05:00
2026-03-06 14:48:01 +00:00
2026-03-06 14:48:01 +00:00
2026-03-06 14:48:01 +00:00
2026-03-06 14:48:01 +00:00
2026-03-06 14:48:01 +00:00
2026-03-06 14:48:01 +00:00
2026-03-09 12:51:47 +01:00
2025-11-27 07:16:03 +00:00
2026-03-06 14:48:01 +00:00
2026-01-09 00:06:58 -05:00
2026-02-15 20:09:55 +01:00
2026-02-03 19:14:27 +01:00
2026-03-04 10:23:57 +01:00
2025-10-02 21:51:39 +02:00
2026-03-06 14:48:01 +00:00
2026-03-06 14:48:01 +00:00
2026-01-17 01:36:52 +08:00
2026-02-03 19:14:27 +01:00
2025-11-25 17:43:26 +00:00
2026-02-03 19:14:27 +01:00
2026-02-03 19:14:27 +01:00
2025-09-18 10:49:42 +08:00
2026-04-06 11:30:36 -07:00
2025-11-17 19:39:20 -08:00
2026-01-09 10:32:22 +01:00
2025-11-22 15:44:06 +00:00
2026-02-23 19:31:22 +00:00
2026-01-27 11:20:15 -08:00
2026-02-22 14:22:56 -08:00
2025-10-01 10:13:42 +02:00
2026-03-06 14:48:01 +00:00
2025-09-25 16:53:24 +00:00
2026-01-09 10:30:28 +01:00
2026-02-26 01:21:28 +08:00
2026-03-02 10:53:07 +01:00
2025-08-22 10:17:12 +01:00
2025-08-14 10:08:26 -07:00
2026-02-05 13:31:26 +00:00
2025-12-11 11:11:00 +00:00
2025-11-25 17:43:26 +00:00
2025-12-03 20:37:30 +08:00
2026-03-06 14:48:01 +00:00
2025-12-12 12:55:55 +01:00
2025-08-08 11:09:34 +02:00
2026-01-22 14:22:44 +00:00
2025-08-08 11:09:34 +02:00
2026-01-22 06:07:03 -08:00
2026-03-06 14:48:01 +00:00
2026-03-06 14:48:01 +00:00
2025-09-12 20:01:17 +02:00
2025-09-17 10:20:59 +00:00
2025-10-20 08:50:09 +00:00
2026-03-06 14:48:01 +00:00
2026-03-06 14:48:01 +00:00
2026-03-06 14:48:01 +00:00
2026-02-05 13:31:26 +00:00
2025-11-25 17:43:26 +00:00
2025-11-25 17:43:26 +00:00
2025-08-08 11:09:34 +02:00
2025-08-08 11:09:34 +02:00
2025-09-12 20:01:17 +02:00
2026-03-06 14:48:01 +00:00
2026-03-06 14:48:01 +00:00
2026-02-09 15:55:59 +00:00
2026-02-09 09:34:17 +01:00
2025-09-17 06:33:59 +00:00
2026-03-06 14:48:01 +00:00
2025-09-01 09:58:11 +02:00
2025-09-01 09:58:11 +02:00
2026-02-24 11:29:53 +00:00
2026-03-06 14:48:01 +00:00
2026-03-06 14:48:01 +00:00
2026-01-17 01:36:52 +08:00
2025-09-12 10:40:17 +08:00
2026-02-09 15:55:59 +00:00
2026-01-25 18:06:36 -05:00
2026-02-09 09:13:26 +00:00
2025-11-11 11:52:56 -08:00
2026-01-28 09:56:07 -08:00
2026-03-06 14:48:01 +00:00
2026-03-25 15:09:19 +00:00
2026-01-05 21:23:14 +01:00
2026-03-06 14:48:01 +00:00
2026-01-21 10:06:29 -08:00
2026-02-22 14:22:56 -08:00
2026-03-06 14:48:01 +00:00
2025-07-30 10:58:49 -06:00
2026-03-04 10:23:57 +01:00
2026-02-03 19:14:27 +01:00
2026-02-15 15:35:43 -08:00
2026-03-06 14:48:01 +00:00
2026-02-10 09:49:31 +00:00
2026-02-10 09:49:31 +00:00
2026-02-25 10:53:01 +00:00
2026-02-10 09:49:31 +00:00
2026-02-10 09:49:31 +00:00
2026-03-06 14:48:01 +00:00
2026-03-06 14:48:01 +00:00
2025-07-31 15:58:04 +02:00
2026-03-06 14:48:01 +00:00
2026-01-24 08:40:46 +01:00
2025-10-20 08:50:09 +00:00
2026-01-17 12:04:37 +00:00
2025-09-29 20:37:06 +00:00
2026-03-31 12:12:15 -07:00
2026-04-06 17:47:24 -07:00
2025-10-16 11:27:47 +02:00
2025-07-15 13:37:07 -07:00
2025-07-15 14:39:53 -07:00
2026-04-06 17:47:24 -07:00
2026-01-05 09:37:34 +01:00
2026-03-06 14:48:01 +00:00
2025-08-08 09:31:50 +02:00
2026-03-04 10:23:57 +01:00
2025-09-20 12:42:17 +00:00
2026-01-19 12:07:03 +01:00
2025-12-18 11:00:39 +01:00
2026-02-07 20:41:58 +09:00
2026-01-28 09:56:07 -08:00
2026-03-06 14:48:01 +00:00
2025-08-15 12:48:32 -06:00
2026-03-27 15:14:32 +01:00
2025-08-01 09:54:43 +01:00
2026-03-06 14:48:01 +00:00
2025-07-21 15:04:50 +02:00
2026-03-20 17:37:00 -07:00
2025-11-24 12:48:32 +01:00
2025-10-25 00:46:41 +08:00
2026-01-28 09:56:07 -08:00
2025-10-23 09:27:57 +01:00
2025-10-26 00:39:49 -04:00
2025-10-03 12:26:09 -07:00
2026-03-11 09:01:57 -07:00
2025-12-28 18:33:23 +08:00
2026-01-16 09:34:08 +01:00
2026-01-03 16:01:57 +01:00
2026-02-19 15:13:10 +00:00
2025-10-23 20:31:31 +08:00
2025-10-23 20:31:31 +08:00
2026-02-21 18:42:09 +00:00
2025-07-16 19:42:41 -07:00
2026-03-06 14:48:01 +00:00
2025-10-20 08:50:09 +00:00
2025-10-20 08:50:09 +00:00
2026-01-24 08:40:46 +01:00
2025-10-03 12:26:09 -07:00
2025-10-06 18:58:35 +00:00
2025-12-05 09:17:13 -08:00
2025-11-03 09:32:42 -08:00
2026-01-26 11:25:06 -10:00
2026-03-04 10:23:57 +01:00
2026-03-17 16:44:19 +00:00
2025-10-28 09:01:50 +08:00
2025-09-05 16:48:57 +02:00
2026-02-03 19:14:27 +01:00
2026-02-03 19:14:27 +01:00
2026-02-03 19:14:27 +01:00
2026-03-06 14:48:01 +00:00
2026-03-06 09:01:28 +01:00
2026-02-05 13:31:26 +00:00
2026-02-02 17:57:21 +00:00
2025-12-31 15:51:44 +01:00
2026-04-06 16:23:20 +02:00
2026-02-11 09:14:39 +01:00
2026-02-02 17:57:21 +00:00
2026-02-11 09:14:55 +01:00
2026-02-02 17:57:21 +00:00
2026-02-02 17:57:21 +00:00
2026-02-02 17:57:21 +00:00
2026-02-02 18:23:53 +01:00
2026-02-05 13:31:26 +00:00
2026-01-01 16:52:22 +01:00
2026-02-19 10:24:46 +00:00
2026-02-05 13:31:26 +00:00
2026-02-05 13:31:26 +00:00
2026-02-05 13:31:26 +00:00
2026-02-05 13:31:26 +00:00
2026-02-05 13:31:26 +00:00
2026-02-05 13:31:26 +00:00
2026-02-05 13:31:26 +00:00
2026-03-11 16:03:28 +00:00
2026-02-11 09:14:12 +01:00
2026-01-09 20:05:00 +00:00
2026-02-11 09:15:11 +01:00
2026-03-11 16:03:28 +00:00
2025-11-25 16:56:06 +01:00
2026-03-06 14:48:01 +00:00
2025-08-08 11:09:34 +02:00
2025-11-09 21:08:46 +00:00
2026-03-26 18:14:58 +01:00
2026-02-19 09:23:32 +00:00
2026-02-19 09:23:32 +00:00
2026-02-06 12:30:32 +01:00
2026-03-06 14:48:01 +00:00
2025-09-10 16:51:58 +02:00
2025-09-01 09:58:11 +02:00
2025-09-01 09:58:11 +02:00
2026-02-23 08:55:00 +00:00
2025-09-10 16:51:58 +02:00
2025-09-01 09:58:11 +02:00
2025-09-01 09:58:11 +02:00
2025-09-01 09:58:11 +02:00
2025-09-01 09:58:11 +02:00
2025-09-12 20:01:17 +02:00
2026-01-11 13:23:27 -08:00
2026-03-06 14:48:01 +00:00
2026-02-22 14:22:56 -08:00
2026-02-22 14:22:56 -08:00
2026-03-16 17:43:20 +00:00
2026-01-13 14:41:37 +01:00
2025-08-08 11:09:34 +02:00
2026-02-09 21:09:48 +08:00
2025-07-28 13:00:37 +02:00
2025-09-12 09:43:47 +02:00
2025-10-28 09:01:50 +08:00
2026-03-10 18:46:20 +00:00
2026-01-11 20:56:52 +08:00
2026-01-25 18:06:36 -05:00
2025-08-08 11:09:34 +02:00
2026-02-22 14:22:56 -08:00
2025-09-02 16:47:03 +00:00
2025-08-08 11:09:34 +02:00
2026-03-06 14:48:01 +00:00
2026-03-06 14:48:01 +00:00
2026-01-08 22:43:13 +01:00
2026-03-06 14:48:01 +00:00
2026-03-06 14:48:01 +00:00
2026-03-06 14:48:01 +00:00
2026-03-06 14:48:01 +00:00
2026-03-06 14:48:01 +00:00
2026-01-11 15:28:31 +00:00
2026-02-21 15:03:25 +00:00
2026-03-13 10:28:21 +00:00
2026-02-04 06:09:49 +00:00
2026-03-06 14:48:01 +00:00
2025-12-25 10:44:04 +00:00
2026-03-06 14:48:01 +00:00
2026-03-06 14:48:01 +00:00
2026-03-04 16:13:48 -06:00
2026-03-06 14:48:01 +00:00
2026-01-13 09:45:14 -08:00
2026-01-11 13:23:27 -08:00