rust/compiler/rustc_mir_transform/src
Matthias Krüger a1ab16792b
Rollup merge of #117141 - tmiasko:inline-target-features, r=oli-obk
Require target features to match exactly during inlining

In general it is not correct to inline a callee with a target features
that are subset of the callee. Require target features to match exactly
during inlining.

The exact match could be potentially relaxed, but this would require
identifying specific feature that are allowed to differ, those that need
to match, and those that can be present in caller but not in callee.

This resolves MIR part of #116573. For other concerns with respect to
the previous implementation also see areInlineCompatible in LLVM.
2023-10-25 19:51:14 +02:00
..
coverage Rollup merge of #116974 - Zalathar:signature-spans, r=oli-obk,cjgillot 2023-10-21 10:08:17 +02:00
inline subst -> instantiate 2023-09-26 09:37:55 +02:00
abort_unwinding_calls.rs s/Generator/Coroutine/ 2023-10-20 21:10:38 +00:00
add_call_guards.rs when terminating during unwinding, show the reason why 2023-08-24 13:28:26 +02:00
add_moves_for_packed_drops.rs Remove DesugaringKind::Replace. 2023-05-25 17:40:46 +00:00
add_retag.rs cleanup misinformation regarding has_deref 2023-08-06 17:29:09 +03:00
add_subtyping_projections.rs move subtyper change reveal_all 2023-10-05 18:56:30 +03:00
check_alignment.rs rename mir::Constant -> mir::ConstOperand, mir::ConstKind -> mir::Const 2023-09-21 08:12:30 +02:00
check_const_item_mutation.rs Format all the let chains in compiler 2023-10-13 08:59:36 +00:00
check_packed_ref.rs Format all the let chains in compiler 2023-10-13 08:59:36 +00:00
check_unsafety.rs s/Generator/Coroutine/ 2023-10-20 21:10:38 +00:00
cleanup_post_borrowck.rs Actually keep PlaceMention if requested. 2023-04-21 21:34:59 +00:00
const_debuginfo.rs Format all the let chains in compiler 2023-10-13 08:59:36 +00:00
const_goto.rs rename mir::Constant -> mir::ConstOperand, mir::ConstKind -> mir::Const 2023-09-21 08:12:30 +02:00
const_prop_lint.rs s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
const_prop.rs s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
copy_prop.rs Format all the let chains in compiler 2023-10-13 08:59:36 +00:00
coroutine.rs s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
cost_checker.rs Make instance an option in CostChecker. 2023-10-21 06:58:00 +00:00
cross_crate_inline.rs Automatically enable cross-crate inlining for small functions 2023-10-17 19:53:51 -04:00
ctfe_limit.rs Simplify back-edge logic. 2023-05-17 12:18:55 +00:00
dataflow_const_prop.rs Use a ConstValue instead. 2023-10-21 16:26:05 +00:00
dead_store_elimination.rs Preserve DebugInfo in DeadStoreElimination. 2023-10-06 15:46:11 +00:00
deduce_param_attrs.rs Normalize before checking if local is freeze in deduced_param_attrs 2023-08-17 14:33:24 -07:00
deduplicate_blocks.rs rename mir::Constant -> mir::ConstOperand, mir::ConstKind -> mir::Const 2023-09-21 08:12:30 +02:00
deref_separator.rs Remove mir::LocalDecl::internal. 2023-10-04 17:55:15 +00:00
dest_prop.rs s/generator/coroutine/ 2023-10-20 21:14:01 +00: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 add some comments explaining why MIR opts are marked as unsound 2023-10-10 11:17:27 +02:00
elaborate_box_derefs.rs Remove mir::LocalDecl::internal. 2023-10-04 17:55:15 +00:00
elaborate_drops.rs Typo. 2023-10-21 12:14:17 +00:00
errors.rs Do not construct def_path_str for MustNotSuspend. 2023-09-23 13:14:57 +00:00
ffi_unwind_calls.rs s/Generator/Coroutine/ 2023-10-20 21:10:38 +00:00
function_item_references.rs inline format!() args from rustc_codegen_llvm to the end (4) 2023-07-25 23:20:28 +02:00
gvn.rs s/Generator/Coroutine/ 2023-10-20 21:10:38 +00:00
inline.rs Require target features to match exactly during inlining 2023-10-24 22:49:15 +02:00
instsimplify.rs Format all the let chains in compiler 2023-10-13 08:59:36 +00:00
jump_threading.rs Expand comment on disappearing edge. 2023-10-21 07:08:53 +00:00
large_enums.rs add some comments explaining why MIR opts are marked as unsound 2023-10-10 11:17:27 +02:00
lib.rs Implement JumpThreading pass. 2023-10-21 06:58:38 +00:00
lower_intrinsics.rs Format all the let chains in compiler 2023-10-13 08:59:36 +00:00
lower_slice_len.rs Format all the let chains in compiler 2023-10-13 08:59:36 +00:00
match_branches.rs rename mir::Constant -> mir::ConstOperand, mir::ConstKind -> mir::Const 2023-09-21 08:12:30 +02:00
multiple_return_terminators.rs Remove unused TyCtxt from remove_dead_blocks 2023-10-18 23:42:45 +11:00
normalize_array_len.rs Format all the let chains in compiler 2023-10-13 08:59:36 +00:00
nrvo.rs add some comments explaining why MIR opts are marked as unsound 2023-10-10 11:17:27 +02:00
pass_manager.rs Only check in a single place if a pass is enabled. 2023-10-18 16:59:23 +00:00
prettify.rs make reorder BB pass use cached RPO 2023-06-14 20:08:04 +00:00
ref_prop.rs Format all the let chains in compiler 2023-10-13 08:59:36 +00:00
remove_noop_landing_pads.rs s/Generator/Coroutine/ 2023-10-20 21:10:38 +00:00
remove_place_mention.rs Actually keep PlaceMention if requested. 2023-04-21 21:34:59 +00:00
remove_storage_markers.rs Make MIR basic blocks field public 2022-07-07 08:11:49 +02:00
remove_uninit_drops.rs Do not create move paths that do not need dropping. 2023-10-21 10:32:59 +00:00
remove_unneeded_drops.rs inline format!() args from rustc_codegen_llvm to the end (4) 2023-07-25 23:20:28 +02:00
remove_zsts.rs s/generator/coroutine/ 2023-10-20 21:14:01 +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 move subtyper change reveal_all 2023-10-05 18:56:30 +03:00
separate_const_switch.rs s/Generator/Coroutine/ 2023-10-20 21:10:38 +00:00
shim.rs s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
simplify_branches.rs rename mir::Constant -> mir::ConstOperand, mir::ConstKind -> mir::Const 2023-09-21 08:12:30 +02:00
simplify_comparison_integral.rs rename mir::Constant -> mir::ConstOperand, mir::ConstKind -> mir::Const 2023-09-21 08:12:30 +02:00
simplify.rs Remove unused TyCtxt from remove_dead_blocks 2023-10-18 23:42:45 +11:00
sroa.rs s/generator/coroutine/ 2023-10-20 21:14:01 +00:00
ssa.rs Also consider call and yield as MIR SSA. 2023-10-08 16:05:26 +00:00
uninhabited_enum_branching.rs Simplify some mir passes by using let chains 2023-10-09 05:22:31 +02:00
unreachable_prop.rs Remove unused TyCtxt from remove_dead_blocks 2023-10-18 23:42:45 +11:00