bors
83c9732e0c
Auto merge of #116270 - cjgillot:gvn-aggregate, r=oli-obk,RalfJung
...
See through aggregates in GVN
This PR is extracted from https://github.com/rust-lang/rust/pull/111344
The first 2 commit are cleanups to avoid repeated work. I propose to stop removing useless assignments as part of this pass, and let a later `SimplifyLocals` do it. This makes tests easier to read (among others).
The next 3 commits add a constant folding mechanism to the GVN pass, presented in https://github.com/rust-lang/rust/pull/116012 . ~This pass is designed to only use global allocations, to avoid any risk of accidental modification of the stored state.~
The following commits implement opportunistic simplifications, in particular:
- projections of aggregates: `MyStruct { x: a }.x` gets replaced by `a`, works with enums too;
- projections of arrays: `[a, b][0]` becomes `a`;
- projections of repeat expressions: `[a; N][x]` becomes `a`;
- transform arrays of equal operands into a repeat rvalue.
Fixes https://github.com/rust-lang/miri/issues/3090
r? `@oli-obk`
2023-10-29 14:50:53 +00:00
..
2023-10-24 15:30:17 +00:00
2023-10-24 15:30:17 +00:00
2023-10-19 15:51:52 +00:00
2023-10-27 18:51:43 +00:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-10-24 22:49:15 +02:00
2023-10-25 23:15:18 +02:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-06-23 18:36:25 +01:00
2023-10-19 15:51:53 +00:00
2023-08-24 14:26:26 +02:00
2023-10-19 15:51:53 +00:00
2023-08-24 14:26:26 +02:00
2023-10-19 15:51:53 +00:00
2023-10-19 15:51:53 +00:00
2023-10-19 15:51:53 +00:00
2023-10-19 15:51:53 +00:00
2023-10-16 16:29:35 +00:00
2023-10-19 15:51:52 +00:00
2023-10-16 19:15:28 +00:00
2023-10-16 19:15:28 +00:00
2023-10-19 15:51:52 +00:00
2023-10-16 19:15:28 +00:00
2023-10-16 19:15:28 +00:00
2023-10-19 15:51:52 +00:00
2023-10-16 19:15:28 +00:00
2023-10-16 19:15:28 +00:00
2023-10-19 15:51:52 +00:00
2023-10-25 06:46:45 +00:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-08-30 17:24:10 +08:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-10-16 16:29:35 +00:00
2023-10-16 16:29:35 +00:00
2023-06-15 15:19:11 -04:00
2023-10-16 16:29:35 +00:00
2023-10-16 16:29:35 +00:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-10-20 21:14:01 +00:00
2023-10-20 21:14:01 +00:00
2023-10-20 21:14:01 +00:00
2023-10-20 21:14:01 +00:00
2023-10-20 21:14:01 +00:00
2023-10-20 21:14:01 +00:00
2023-10-20 21:14:01 +00:00
2023-10-20 21:14:01 +00:00
2023-06-15 15:19:11 -04:00
2023-06-23 18:36:25 +01:00
2023-10-19 15:51:52 +00:00
2023-10-24 15:30:17 +00:00
2023-10-24 15:30:17 +00:00
2023-10-19 15:51:52 +00:00
2023-08-24 14:26:26 +02:00
2023-08-24 14:26:26 +02:00
2023-10-19 15:51:52 +00:00
2023-10-24 15:30:17 +00:00
2023-10-24 15:30:17 +00:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-09-19 05:42:23 +00:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-10-16 16:29:35 +00:00
2023-10-16 16:29:35 +00:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-10-16 16:29:35 +00:00
2023-10-16 16:29:35 +00:00
2023-10-24 15:30:17 +00:00
2023-10-19 15:51:52 +00:00
2023-06-28 00:41:37 +00:00
2023-10-19 15:51:52 +00:00
2023-10-17 19:53:51 -04:00
2023-10-17 19:53:51 -04:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-10-25 06:46:48 +00:00
2023-10-25 06:46:48 +00:00
2023-10-25 06:46:45 +00:00
2023-10-25 06:46:45 +00:00
2023-10-25 06:46:47 +00:00
2023-10-25 06:46:47 +00:00
2023-10-25 06:46:47 +00:00
2023-10-25 06:46:47 +00:00
2023-10-25 06:46:48 +00:00
2023-10-25 06:46:48 +00:00
2023-10-25 06:46:47 +00:00
2023-10-25 06:46:47 +00:00
2023-10-25 06:46:48 +00:00
2023-10-25 06:46:48 +00:00
2023-10-25 06:47:04 +00:00
2023-10-25 06:47:04 +00:00
2023-10-25 17:59:30 +00:00
2023-10-25 17:59:30 +00:00
2023-10-25 06:46:45 +00:00
2023-10-25 06:46:45 +00:00
2023-10-25 06:46:47 +00:00
2023-10-25 06:46:47 +00:00
2023-10-25 06:46:48 +00:00
2023-10-25 06:46:48 +00:00
2023-10-25 06:46:47 +00:00
2023-10-25 06:46:47 +00:00
2023-10-25 17:59:30 +00:00
2023-10-25 06:46:48 +00:00
2023-10-25 06:46:48 +00:00
2023-10-25 06:46:48 +00:00
2023-10-25 06:46:48 +00:00
2023-10-25 06:46:47 +00:00
2023-10-25 06:46:47 +00:00
2023-06-15 15:19:11 -04:00
2023-08-30 17:24:10 +08:00
2023-06-15 15:19:11 -04:00
2023-08-30 17:24:10 +08:00
2023-08-30 17:24:10 +08:00
2023-08-30 17:24:10 +08:00
2023-08-30 17:24:10 +08:00
2023-08-30 17:24:10 +08:00
2023-10-19 15:51:52 +00:00
2023-09-19 05:42:23 +00:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-08-24 14:26:26 +02:00
2023-08-24 14:26:26 +02:00
2023-10-19 15:51:52 +00:00
2023-08-24 14:26:26 +02:00
2023-08-24 14:26:26 +02:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-10-24 15:30:17 +00:00
2023-10-24 15:30:17 +00:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-10-24 15:30:17 +00:00
2023-10-24 15:30:17 +00:00
2023-10-24 15:30:17 +00:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-10-25 06:46:45 +00:00
2023-10-25 06:46:45 +00:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-08-24 14:26:26 +02:00
2023-08-24 14:26:26 +02:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-10-24 15:30:17 +00:00
2023-10-24 15:30:17 +00:00
2023-10-19 15:51:52 +00:00
2023-10-06 15:46:11 +00:00
2023-10-06 15:46:11 +00:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-06-23 18:36:25 +01:00
2023-10-19 15:51:52 +00:00
2023-10-21 06:58:38 +00:00
2023-10-21 06:58:38 +00:00
2023-10-21 07:08:53 +00:00
2023-10-21 07:08:53 +00:00
2023-10-21 07:08:53 +00:00
2023-10-21 07:08:53 +00:00
2023-10-21 06:58:38 +00:00
2023-10-21 06:58:38 +00:00
2023-10-21 06:58:38 +00:00
2023-10-21 06:58:38 +00:00
2023-10-21 06:58:38 +00:00
2023-10-21 06:58:38 +00:00
2023-10-21 06:58:38 +00:00
2023-10-21 06:58:38 +00:00
2023-10-21 06:58:38 +00:00
2023-10-21 06:58:38 +00:00
2023-10-21 07:01:24 +00:00
2023-10-21 07:01:24 +00:00
2023-10-21 07:08:53 +00:00
2023-10-21 06:58:38 +00:00
2023-10-21 06:58:38 +00:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-08-30 17:24:10 +08:00
2023-08-30 17:24:10 +08:00
2023-08-30 17:24:10 +08:00
2023-08-30 17:24:10 +08:00
2023-07-07 18:17:16 +02:00
2023-07-07 18:17:16 +02:00
2023-07-07 18:17:16 +02:00
2023-07-07 18:17:16 +02:00
2023-07-07 18:17:16 +02:00
2023-07-07 18:17:16 +02:00
2023-07-07 18:17:16 +02:00
2023-07-07 18:17:16 +02:00
2023-10-19 15:51:54 +00:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-09-04 18:27:34 +02:00
2023-09-04 18:27:34 +02:00
2023-10-19 15:51:54 +00:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-10-24 15:30:17 +00:00
2023-10-24 15:30:17 +00:00
2023-10-24 15:30:17 +00:00
2023-10-24 15:30:17 +00:00
2023-10-24 15:30:17 +00:00
2023-10-24 15:30:17 +00:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-19 01:47:03 -07:00
2023-06-19 01:47:03 -07:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-08-30 17:24:10 +08:00
2023-08-30 17:24:10 +08:00
2023-10-19 15:51:54 +00:00
2023-10-24 15:30:17 +00:00
2023-10-24 15:30:17 +00:00
2023-10-19 15:51:52 +00:00
2023-10-24 15:30:17 +00:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-08-30 17:24:10 +08:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-08-24 14:26:26 +02:00
2023-08-24 14:26:26 +02:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-23 18:36:25 +01:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-08-24 14:26:26 +02:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:54 +00:00
2023-10-08 16:05:26 +00:00
2023-06-23 18:36:25 +01:00
2023-06-23 18:36:25 +01:00
2023-06-23 18:36:25 +01:00
2023-08-17 17:02:04 +00:00
2023-06-15 15:19:11 -04:00
2023-08-17 17:02:04 +00:00
2023-08-17 17:02:04 +00:00
2023-08-17 17:02:04 +00:00
2023-08-17 17:02:04 +00:00
2023-10-19 15:51:53 +00:00
2023-06-23 18:36:25 +01:00
2023-10-24 15:30:17 +00:00
2023-10-24 15:30:17 +00:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-06-23 18:36:25 +01:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-23 18:36:25 +01:00
2023-06-15 15:19:11 -04:00
2023-06-23 18:36:25 +01:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-08-30 17:24:10 +08:00
2023-08-30 17:24:10 +08:00
2023-06-15 15:19:11 -04:00
2023-06-23 18:36:25 +01:00
2023-09-21 22:20:58 +02:00
2023-09-21 22:20:58 +02:00
2023-10-02 23:39:45 +03:00
2023-10-02 23:39:45 +03:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-10-04 17:55:15 +00:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-10-25 06:46:45 +00:00
2023-10-25 06:46:45 +00:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-06-23 18:36:25 +01:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-06-23 18:36:25 +01:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-07-07 18:17:16 +02:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-06-23 18:36:25 +01:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-08-24 14:26:26 +02:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-06-23 18:36:25 +01:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-06-23 18:36:25 +01:00
2023-10-19 15:51:52 +00:00
2023-10-19 15:51:52 +00:00
2023-08-24 14:26:26 +02:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-06-15 15:19:11 -04:00
2023-10-19 15:51:52 +00:00
2023-10-21 07:08:48 +00:00
2023-10-21 07:08:48 +00:00