Skip to main content

BackendConfig

Struct BackendConfig 

Source
pub struct BackendConfig {
    pub opt_level: OptimizationLevel,
    pub is_dumping: bool,
    pub debug_assertions: bool,
    pub debug_support: bool,
    pub profiling_support: bool,
    pub simple_perf: bool,
    pub debug_file: Option<PathBuf>,
}
Expand description

Backend configuration.

Collects all tuneable settings that EvmCompiler forwards to the backend. Backends receive a full snapshot via Backend::apply_config whenever the compiler changes a setting, so they can apply side-effects (e.g. toggling ASM verbosity) in one place.

Fields§

§opt_level: OptimizationLevel

Optimization level.

§is_dumping: bool

Whether IR output is being dumped (enables verbose names, asm comments, etc.).

§debug_assertions: bool

Whether to enable debug assertions in generated code.

§debug_support: bool

Whether to enable JIT debug support (GDB/LLDB registration).

Applied once per process on first JIT compilation.

§profiling_support: bool

Whether to enable JIT profiling support (perf jitdump).

Applied once per process on first JIT compilation.

§simple_perf: bool

Whether to enable the simple perf map plugin.

Writes /tmp/perf-<pid>.map in the perf map format so that profilers can resolve JIT-compiled symbols without the jitdump machinery.

Not suitable for long-running programs. The map file is append-only and never cleaned up, so entries for freed JIT code accumulate indefinitely. Prefer profiling_support (jitdump) for long-lived processes.

Applied once per process on first JIT compilation.

§debug_file: Option<PathBuf>

Debug info source file path. Some enables debug info emission.

Trait Implementations§

Source§

impl Clone for BackendConfig

Source§

fn clone(&self) -> BackendConfig

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for BackendConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for BackendConfig

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl PartialEq for BackendConfig

Source§

fn eq(&self, other: &BackendConfig) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for BackendConfig

Source§

impl StructuralPartialEq for BackendConfig

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 32 bytes