Skip to main content

Module settings

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.
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.