Struct cranelift_faerie::FaerieBuilder
source · pub struct FaerieBuilder { /* private fields */ }
Expand description
A builder for FaerieBackend
.
Implementations§
source§impl FaerieBuilder
impl FaerieBuilder
sourcepub fn new(
isa: Box<dyn TargetIsa>,
name: String,
collect_traps: FaerieTrapCollection,
libcall_names: Box<dyn Fn(LibCall) -> String>
) -> ModuleResult<Self>
pub fn new(
isa: Box<dyn TargetIsa>,
name: String,
collect_traps: FaerieTrapCollection,
libcall_names: Box<dyn Fn(LibCall) -> String>
) -> ModuleResult<Self>
Create a new FaerieBuilder
using the given Cranelift target, that
can be passed to
[Module::new
](cranelift_module/struct.Module.html#method.new].
Faerie output requires that TargetIsa have PIC (Position Independent Code) enabled.
collect_traps
setting determines whether trap information is collected in a
FaerieTrapManifest
available in the FaerieProduct
.
The libcall_names
function provides a way to translate cranelift_codegen
’s ir::LibCall
enum to symbols. LibCalls are inserted in the IR as part of the legalization for certain
floating point instructions, and for stack probes. If you don’t know what to use for this
argument, use FaerieBuilder::default_libcall_names()
.
sourcepub fn default_libcall_names() -> Box<dyn Fn(LibCall) -> String>
pub fn default_libcall_names() -> Box<dyn Fn(LibCall) -> String>
Default names for ir::LibCall
s. A function by this name is imported into the object as
part of the translation of a ir::ExternalName::LibCall
variant. Calls to a LibCall should
only be inserted into the IR by the cranelift_codegen
legalizer pass.