rustc_codegen_ssa::traits

Trait MiscCodegenMethods

Source
pub trait MiscCodegenMethods<'tcx>: BackendTypes {
    // Required methods
    fn vtables(
        &self,
    ) -> &RefCell<FxHashMap<(Ty<'tcx>, Option<PolyExistentialTraitRef<'tcx>>), Self::Value>>;
    fn get_fn(&self, instance: Instance<'tcx>) -> Self::Function;
    fn get_fn_addr(&self, instance: Instance<'tcx>) -> Self::Value;
    fn eh_personality(&self) -> Self::Value;
    fn sess(&self) -> &Session;
    fn codegen_unit(&self) -> &'tcx CodegenUnit<'tcx>;
    fn set_frame_pointer_type(&self, llfn: Self::Function);
    fn apply_target_cpu_attr(&self, llfn: Self::Function);
    fn declare_c_main(&self, fn_type: Self::Type) -> Option<Self::Function>;

    // Provided method
    fn apply_vcall_visibility_metadata(
        &self,
        _ty: Ty<'tcx>,
        _poly_trait_ref: Option<PolyExistentialTraitRef<'tcx>>,
        _vtable: Self::Value,
    ) { ... }
}

Required Methods§

Source

fn vtables( &self, ) -> &RefCell<FxHashMap<(Ty<'tcx>, Option<PolyExistentialTraitRef<'tcx>>), Self::Value>>

Source

fn get_fn(&self, instance: Instance<'tcx>) -> Self::Function

Source

fn get_fn_addr(&self, instance: Instance<'tcx>) -> Self::Value

Source

fn eh_personality(&self) -> Self::Value

Source

fn sess(&self) -> &Session

Source

fn codegen_unit(&self) -> &'tcx CodegenUnit<'tcx>

Source

fn set_frame_pointer_type(&self, llfn: Self::Function)

Source

fn apply_target_cpu_attr(&self, llfn: Self::Function)

Source

fn declare_c_main(&self, fn_type: Self::Type) -> Option<Self::Function>

Declares the extern “C” main function for the entry point. Returns None if the symbol already exists.

Provided Methods§

Source

fn apply_vcall_visibility_metadata( &self, _ty: Ty<'tcx>, _poly_trait_ref: Option<PolyExistentialTraitRef<'tcx>>, _vtable: Self::Value, )

Implementors§