rust/tests
bors 8d76d07666 Auto merge of #116012 - cjgillot:gvn-const, r=oli-obk
Implement constant propagation on top of MIR SSA analysis

This implements the idea I proposed in https://github.com/rust-lang/rust/pull/110719#issuecomment-1718324700

Based on https://github.com/rust-lang/rust/pull/109597

The value numbering "GVN" pass formulates each rvalue that appears in MIR with an abstract form (the `Value` enum), and assigns an integer `VnIndex` to each. This abstract form can be used to deduplicate values, reusing an earlier local that holds the same value instead of recomputing. This part is proposed in #109597.

From this abstract representation, we can perform more involved simplifications, for example in https://github.com/rust-lang/rust/pull/111344.

With the abstract representation `Value`, we can also attempt to evaluate each to a constant using the interpreter. This builds a `VnIndex -> OpTy` map. From this map, we can opportunistically replace an operand or a rvalue with a constant if their value has an associated `OpTy`.

The most relevant commit is [Evaluated computed values to constants.](2767c4912e)"

r? `@oli-obk`
2023-12-30 03:45:58 +00:00
..
assembly
auxiliary
codegen Revert codegen test change. 2023-12-24 20:08:58 +00:00
codegen-units
coverage Enable GVN by default. 2023-12-24 20:08:57 +00:00
coverage-run-rustdoc
debuginfo
incremental Disable opt in incremental test. 2023-12-24 20:08:58 +00:00
mir-opt Auto merge of #116012 - cjgillot:gvn-const, r=oli-obk 2023-12-30 03:45:58 +00:00
pretty Make some non-diagnostic-affecting QPath::LangItem into regular qpaths 2023-12-26 04:07:38 +00:00
run-make
run-make-fulldeps Remove more Session methods that duplicate DiagCtxt methods. 2023-12-24 08:17:47 +11:00
run-pass-valgrind
rustdoc Strenghten tests/rustdoc/trait-object-safe.rs to prevent unforeseen regression 2023-12-23 11:28:33 +01:00
rustdoc-gui rustdoc: treat query string + as space 2023-12-26 14:14:28 -07:00
rustdoc-js rustdoc-search: count path edits with separate edit limit 2023-12-26 18:46:17 -07:00
rustdoc-js-std rustdoc-search: count path edits with separate edit limit 2023-12-26 18:46:17 -07:00
rustdoc-json Add regression test for is_object_safe field on traits 2023-12-23 19:00:17 +01:00
rustdoc-ui Simple modification of diagnostic information 2023-12-21 10:17:11 +08:00
ui Auto merge of #116012 - cjgillot:gvn-const, r=oli-obk 2023-12-30 03:45:58 +00:00
ui-fulldeps Auto merge of #119097 - nnethercote:fix-EmissionGuarantee, r=compiler-errors 2023-12-22 00:03:57 +00:00
COMPILER_TESTS.md