rust/compiler/rustc_mir_transform/src
bors 9aa232ecc7 Auto merge of #120405 - cjgillot:gvn-pointer, r=oli-obk
Fold pointer operations in GVN

This PR proposes 2 combinations of cast operations in MIR GVN:
- a chain of `PtrToPtr` or `MutToConstPointer` casts can be folded together into a single `PtrToPtr` cast;
- we attempt to evaluate more ptr ops when there is no provenance.

In particular, this allows to read from static slices.

This is not yet sufficient to see through slice operations that use `PtrComponents` (because that's a union), but still a step forward.

r? `@ghost`
2024-02-11 04:24:40 +00:00
..
coroutine Don't ICE in ByMoveBody when coroutine is tainted 2024-02-09 00:36:30 +00:00
coverage Rollup merge of #120564 - Zalathar:increment-site, r=oli-obk 2024-02-07 18:24:43 +01:00
inline Fix drop shim for AsyncFnOnce closure, AsyncFnMut shim for AsyncFn closure 2024-02-06 02:22:58 +00:00
abort_unwinding_calls.rs Fix mir pass ICE in the presence of other errors 2024-02-08 14:49:27 +00:00
add_call_guards.rs remove redundant imports 2023-12-10 10:56:22 +08:00
add_moves_for_packed_drops.rs remove redundant imports 2023-12-10 10:56:22 +08:00
add_retag.rs remove redundant imports 2023-12-10 10:56:22 +08:00
add_subtyping_projections.rs remove redundant imports 2023-12-10 10:56:22 +08:00
check_alignment.rs remove redundant imports 2023-12-10 10:56:22 +08:00
check_const_item_mutation.rs Rename TyCtxt::emit_spanned_lint as TyCtxt::emit_node_span_lint. 2024-01-23 08:09:05 +11:00
check_packed_ref.rs Remove Session methods that duplicate DiagCtxt methods. 2023-12-24 08:05:28 +11:00
check_unsafety.rs Add CoroutineClosure to TyKind, AggregateKind, UpvarArgs 2024-02-06 02:22:58 +00:00
cleanup_post_borrowck.rs rename BorrowKind::Shallow to Fake 2023-11-08 22:55:28 +01:00
const_debuginfo.rs Format all the let chains in compiler 2023-10-13 08:59:36 +00:00
const_prop.rs Use DiagnosticArgName in a few more places. 2024-02-03 09:02:50 +11:00
const_prop_lint.rs validation: descend from consts into statics 2024-02-10 16:13:47 +01:00
copy_prop.rs remove redundant imports 2023-12-10 10:56:22 +08:00
coroutine.rs Construct body for by-move coroutine closure output 2024-02-06 02:22:58 +00:00
cost_checker.rs Re-format code with new rustfmt 2023-11-15 21:45:48 -05:00
cross_crate_inline.rs Fix cases where std accidentally relied on inline(never) 2023-12-14 08:30:36 -05:00
ctfe_limit.rs Fix clippy::needless_borrow in the compiler 2023-11-21 20:13:40 +01:00
dataflow_const_prop.rs Remove untested arithmetic ops. 2024-02-09 21:06:25 +00:00
dead_store_elimination.rs Auto merge of #116520 - Enselic:large-copy-into-fn, r=oli-obk 2024-01-16 19:33:14 +00:00
deduce_param_attrs.rs compiler: Lower fn call arg spans down to MIR 2024-01-15 19:07:11 +01:00
deduplicate_blocks.rs Merge dead bb pruning and unreachable bb deduplication. 2024-01-07 15:12:10 +00:00
deref_separator.rs remove redundant imports 2023-12-10 10:56:22 +08:00
dest_prop.rs Rollup merge of #115291 - cjgillot:dest-prop-save, r=JakobDegen 2024-01-17 20:21:19 +01:00
dump_mir.rs Write to stdout if - is given as output file 2023-06-06 17:53:29 -04:00
early_otherwise_branch.rs Merge dead bb pruning and unreachable bb deduplication. 2024-01-07 15:12:10 +00:00
elaborate_box_derefs.rs remove redundant imports 2023-12-10 10:56:22 +08:00
elaborate_drops.rs Remove Session methods that duplicate DiagCtxt methods. 2023-12-24 08:05:28 +11:00
errors.rs Remove the lifetime from DiagnosticArgValue. 2024-01-30 18:46:06 +11:00
ffi_unwind_calls.rs Continue to borrowck even if there were previous errors 2024-02-08 08:10:43 +00:00
function_item_references.rs Rename TyCtxt::emit_spanned_lint as TyCtxt::emit_node_span_lint. 2024-01-23 08:09:05 +11:00
gvn.rs Const-prop pointers. 2024-02-09 21:06:23 +00:00
inline.rs Deduplicate tcx.instance_mir(instance) calls in try_instance_mir 2024-02-08 15:47:14 +03:00
instsimplify.rs InstSimplify rustc_nounwind calls 2024-02-08 11:49:05 -05:00
jump_threading.rs Enable by default. 2024-02-09 21:13:51 +00:00
large_enums.rs Fix some comments 2023-12-28 12:23:14 +08:00
lib.rs Auto merge of #117206 - cjgillot:jump-threading-default, r=tmiasko 2024-02-10 22:15:18 +00:00
lint.rs compiler: Lower fn call arg spans down to MIR 2024-01-15 19:07:11 +01:00
lower_intrinsics.rs Add a new debug_assertions instrinsic (compiler) 2024-02-08 11:49:08 -05:00
lower_slice_len.rs compiler: Lower fn call arg spans down to MIR 2024-01-15 19:07:11 +01:00
match_branches.rs Merge dead bb pruning and unreachable bb deduplication. 2024-01-07 15:12:10 +00:00
multiple_return_terminators.rs remove redundant imports 2023-12-10 10:56:22 +08:00
normalize_array_len.rs remove redundant imports 2023-12-10 10:56:22 +08:00
nrvo.rs Remove uses of HybridBitSet. 2024-01-22 22:53:20 +00:00
pass_manager.rs Rollup merge of #120733 - klensy:trait-const-fn, r=oli-obk 2024-02-07 18:24:45 +01:00
prettify.rs remove redundant imports 2023-12-10 10:56:22 +08:00
promote_consts.rs Add a new debug_assertions instrinsic (compiler) 2024-02-08 11:49:08 -05:00
ref_prop.rs Don't require owned data in MaybeStorageDead 2023-12-21 12:58:39 +01:00
remove_noop_landing_pads.rs remove redundant imports 2023-12-10 10:56:22 +08:00
remove_place_mention.rs remove redundant imports 2023-12-10 10:56:22 +08:00
remove_storage_markers.rs Move condition enabling the pass to is_enabled 2024-01-23 20:58:44 +01:00
remove_uninit_drops.rs remove redundant imports 2023-12-10 10:56:22 +08:00
remove_unneeded_drops.rs Merge dead bb pruning and unreachable bb deduplication. 2024-01-07 15:12:10 +00:00
remove_zsts.rs Add CoroutineClosure to TyKind, AggregateKind, UpvarArgs 2024-02-06 02:22:58 +00:00
required_consts.rs rename mir::Constant -> mir::ConstOperand, mir::ConstKind -> mir::Const 2023-09-21 08:12:30 +02:00
reveal_all.rs remove redundant imports 2023-12-10 10:56:22 +08:00
shim.rs Fix drop shim for AsyncFnOnce closure, AsyncFnMut shim for AsyncFn closure 2024-02-06 02:22:58 +00:00
simplify.rs Merge dead bb pruning and unreachable bb deduplication. 2024-01-07 15:12:10 +00:00
simplify_branches.rs remove redundant imports 2023-12-10 10:56:22 +08:00
simplify_comparison_integral.rs rename mir::Constant -> mir::ConstOperand, mir::ConstKind -> mir::Const 2023-09-21 08:12:30 +02:00
sroa.rs remove redundant imports 2023-12-10 10:56:22 +08:00
ssa.rs Inline dominator check. 2023-12-31 00:37:45 +00:00
uninhabited_enum_branching.rs Fix clippy::needless_borrow in the compiler 2023-11-21 20:13:40 +01:00
unreachable_prop.rs rustc_mir_transform: Enforce rustc::potential_query_instability lint 2024-01-06 19:09:04 +01:00