cranelift_codegen

Module settings

Source
Expand description

Shared settings module.

This module defines data structures to access the settings defined in the meta language.

Each settings group is translated to a Flags struct either in this module or in its ISA-specific settings module. The struct provides individual getter methods for all of the settings as well as computed predicate flags.

The Flags struct is immutable once it has been created. A Builder instance is used to create it.

§Example

use cranelift_codegen::settings::{self, Configurable};

let mut b = settings::builder();
b.set("opt_level", "speed_and_size");

let f = settings::Flags::new(b);
assert_eq!(f.opt_level(), settings::OptLevel::SpeedAndSize);

Modules§

detail
Implementation details for generated code.

Structs§

Builder
Collect settings values based on a template.
Flags
Flags group shared.
FlagsOrIsa
Wrapper containing flags and optionally a TargetIsa trait object.
PredicateView
A reference to just the boolean predicates of a settings object.
Setting
Represents an available builder setting.
Value
Represents a setting value.

Enums§

LibcallCallConv
Values for shared.libcall_call_conv.
OptLevel
Values for shared.opt_level.
ProbestackStrategy
Values for shared.probestack_strategy.
RegallocAlgorithm
Values for shared.regalloc_algorithm.
SetError
An error produced when changing a setting.
SettingKind
Represents the kind of setting.
StackSwitchModel
Values for shared.stack_switch_model.
TlsModel
Values for shared.tls_model.

Traits§

Configurable
A string-based configurator for settings groups.

Functions§

builder
Create a settings::Builder for the shared settings group.

Type Aliases§

SetResult
A result returned when changing a setting.