rust/compiler/rustc_mir/src/transform
bors e655fb6221 Auto merge of #82936 - oli-obk:valtree, r=RalfJung,lcnr,matthewjasper
Implement (but don't use) valtree and refactor in preparation of use

This PR does not cause any functional change. It refactors various things that are needed to make valtrees possible. This refactoring got big enough that I decided I'd want it reviewed as a PR instead of trying to make one huge PR with all the changes.

cc `@rust-lang/wg-const-eval` on the following commits:

* 2027184 implement valtree
* eeecea9 fallible Scalar -> ScalarInt
* 042f663 ScalarInt convenience methods

cc `@eddyb` on ef04a6d

cc `@rust-lang/wg-mir-opt` for cf1700c (`mir::Constant` can now represent either a `ConstValue` or a `ty::Const`, and it is totally possible to have two different representations for the same value)
2021-03-16 22:42:56 +00:00
..
check_consts Prepare mir::Constant for ty::Const only supporting valtrees 2021-03-12 12:43:54 +00:00
coverage Rename Option::get_or_insert_default 2021-03-10 09:07:16 -06:00
inline Use small hash set in mir_inliner_callees 2021-02-24 00:00:00 +00:00
add_call_guards.rs Remember the MirSource for each Body 2020-10-04 11:01:38 -07:00
add_moves_for_packed_drops.rs Replace (Body, DefId) with Body where possible 2020-10-04 16:07:03 -07:00
add_retag.rs Retagging: do not retag 'raw reborrows' 2020-10-31 15:31:27 +01:00
check_const_item_mutation.rs Suppress CONST_ITEM_MUTATION lint if a dereference occurs anywhere 2020-12-17 15:25:55 -05:00
check_packed_ref.rs Remember the MirSource for each Body 2020-10-04 11:01:38 -07:00
check_unsafety.rs Rollup merge of #79208 - LeSeulArtichaut:stable-unsafe_op_in_unsafe_fn, r=nikomatsakis 2021-03-10 08:01:25 +09:00
cleanup_post_borrowck.rs Remember the MirSource for each Body 2020-10-04 11:01:38 -07:00
const_debuginfo.rs Disable the constant debuginfo promotion pass by default 2020-12-14 19:56:10 -05:00
const_goto.rs Bump all mir_opt_level 3 to 4 2021-03-05 17:13:56 -03:00
const_prop.rs s/ConstantSource/ConstantKind/ 2021-03-15 12:06:52 +00:00
deaggregator.rs Remember the MirSource for each Body 2020-10-04 11:01:38 -07:00
deduplicate_blocks.rs Bump all mir_opt_level 3 to 4 2021-03-05 17:13:56 -03:00
dest_prop.rs Update match branches 2021-03-09 16:54:13 +00:00
dump_mir.rs Remember the MirSource for each Body 2020-10-04 11:01:38 -07:00
early_otherwise_branch.rs Auto merge of #82727 - oli-obk:shrinkmem, r=pnkfelix 2021-03-08 08:39:24 +00:00
elaborate_drops.rs Prepare mir::Constant for ty::Const only supporting valtrees 2021-03-12 12:43:54 +00:00
function_item_references.rs Review changes 2021-01-16 18:56:37 -05:00
generator.rs Prepare mir::Constant for ty::Const only supporting valtrees 2021-03-12 12:43:54 +00:00
inline.rs Prepare mir::Constant for ty::Const only supporting valtrees 2021-03-12 12:43:54 +00:00
instcombine.rs Prepare mir::Constant for ty::Const only supporting valtrees 2021-03-12 12:43:54 +00:00
lower_intrinsics.rs Prepare mir::Constant for ty::Const only supporting valtrees 2021-03-12 12:43:54 +00:00
match_branches.rs Prepare mir::Constant for ty::Const only supporting valtrees 2021-03-12 12:43:54 +00:00
mod.rs Extract mir_opt_level to a method and use Option to be able to know if the value is provided or not 2021-03-05 17:13:56 -03:00
multiple_return_terminators.rs Bump all mir_opt_level 3 to 4 2021-03-05 17:13:56 -03:00
no_landing_pads.rs Visit only terminators when removing landing pads 2021-01-18 00:00:00 +00:00
nrvo.rs Extract mir_opt_level to a method and use Option to be able to know if the value is provided or not 2021-03-05 17:13:56 -03:00
promote_consts.rs Prepare mir::Constant for ty::Const only supporting valtrees 2021-03-12 12:43:54 +00:00
remove_noop_landing_pads.rs Switch to changing cp_non_overlap in tform 2021-03-09 16:54:14 +00:00
remove_storage_markers.rs Remove storage markers if they won't be used during code generation 2021-02-28 20:10:44 +01:00
remove_unneeded_drops.rs Visit only terminators when removing unneeded drops 2021-01-17 00:00:00 +00:00
required_consts.rs Prepare mir::Constant for ty::Const only supporting valtrees 2021-03-12 12:43:54 +00:00
rustc_peek.rs Prepare mir::Constant for ty::Const only supporting valtrees 2021-03-12 12:43:54 +00:00
simplify.rs remove unnecessary condition 2021-03-14 20:21:20 -04:00
simplify_branches.rs Simplify assert terminator only if condition evaluates to expected value 2020-10-21 00:00:00 +00:00
simplify_comparison_integral.rs Prepare mir::Constant for ty::Const only supporting valtrees 2021-03-12 12:43:54 +00:00
simplify_try.rs Drive-by formatting of comment 2021-02-21 21:22:04 +01:00
uninhabited_enum_branching.rs Refactor how SwitchInt stores jump targets 2020-10-10 17:46:11 +02:00
unreachable_prop.rs Bump all mir_opt_level 3 to 4 2021-03-05 17:13:56 -03:00
validate.rs Clean up todos 2021-03-09 19:31:31 +00:00