Expand description
This module ensures that if a functionβs ABI requires a particular target feature, that target feature is enabled both on the callee and all callers.
Re-exportsΒ§
use rustc_abi::BackendRepr;πuse rustc_abi::CanonAbi;πuse rustc_abi::ExternAbi;πuse rustc_abi::RegKind;πuse rustc_abi::X86Call;πuse rustc_hir::CRATE_HIR_ID;πuse rustc_hir::HirId;πuse rustc_middle::mir;πuse rustc_middle::mir::Location;πuse rustc_middle::mir::traversal;πuse rustc_middle::ty::layout::FnAbiRequest;πuse rustc_middle::ty::layout::codegen_handle_fn_abi_err;πuse rustc_middle::ty;πuse rustc_middle::ty::Instance;πuse rustc_middle::ty::InstanceKind;πuse rustc_middle::ty::Ty;πuse rustc_middle::ty::TyCtxt;πuse rustc_span::def_id::DefId;πuse rustc_span::DUMMY_SP;πuse rustc_span::Span;πuse rustc_span::Symbol;πuse rustc_span::sym;πuse rustc_target::callconv::FnAbi;πuse rustc_target::callconv::PassMode;πuse crate::diagnostics;π
EnumsΒ§
- Uses
Vector πRegisters - Are vector registers used?
FunctionsΒ§
- check_
call_ πsite_ abi - Check the ABI at a call site, emitting an error when:
- check_
callees_ πabi - check_
feature_ πdependent_ abi - check_
instance_ πabi - Checks the ABI of an Instance, emitting an error when:
- do_
check_ πsimd_ vector_ abi - Checks whether a certain function ABI is compatible with the target features currently enabled
for a certain function.
is_callindicates whether this is a call-site check or a definition-site check; this is only relevant for the wording in the emitted error. - do_
check_ πunsized_ params - Emit an error when a non-rustic ABI has unsized parameters.
Unsized types do not have a stable layout, so should not be used with stable ABIs.
is_callindicates whether this is a call-site check or a definition-site check; this is only relevant for the wording in the emitted error. - passes_
vectors_ πby_ value - Determines whether the combination of
modeandreprwill use fixed vector registers, scalable vector registers or no vector registers.