Add a cranelift flag to enable/disable verbose logs for regalloc2 (#4481)
This commit is contained in:
@@ -18,6 +18,18 @@ pub(crate) fn define() -> SettingGroup {
|
|||||||
false,
|
false,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
settings.add_bool(
|
||||||
|
"regalloc_verbose_logs",
|
||||||
|
"Enable verbose debug logs for regalloc2.",
|
||||||
|
r#"
|
||||||
|
This adds extra logging for regalloc2 output, that is quite valuable to understand
|
||||||
|
decisions taken by the register allocator as well as debugging it. It is disabled by
|
||||||
|
default, as it can cause many log calls which can slow down compilation by a large
|
||||||
|
amount.
|
||||||
|
"#,
|
||||||
|
false,
|
||||||
|
);
|
||||||
|
|
||||||
settings.add_enum(
|
settings.add_enum(
|
||||||
"opt_level",
|
"opt_level",
|
||||||
"Optimization level for generated code.",
|
"Optimization level for generated code.",
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ pub fn compile<B: LowerBackend + TargetIsa>(
|
|||||||
let regalloc_result = {
|
let regalloc_result = {
|
||||||
let _tt = timing::regalloc();
|
let _tt = timing::regalloc();
|
||||||
let mut options = RegallocOptions::default();
|
let mut options = RegallocOptions::default();
|
||||||
options.verbose_log = log::log_enabled!(log::Level::Trace);
|
options.verbose_log = b.flags().regalloc_verbose_logs();
|
||||||
regalloc2::run(&vcode, machine_env, &options)
|
regalloc2::run(&vcode, machine_env, &options)
|
||||||
.map_err(|err| {
|
.map_err(|err| {
|
||||||
log::error!(
|
log::error!(
|
||||||
|
|||||||
@@ -527,6 +527,7 @@ libcall_call_conv = "isa_default"
|
|||||||
baldrdash_prologue_words = 0
|
baldrdash_prologue_words = 0
|
||||||
probestack_size_log2 = 12
|
probestack_size_log2 = 12
|
||||||
regalloc_checker = false
|
regalloc_checker = false
|
||||||
|
regalloc_verbose_logs = false
|
||||||
enable_alias_analysis = true
|
enable_alias_analysis = true
|
||||||
enable_verifier = true
|
enable_verifier = true
|
||||||
is_pic = false
|
is_pic = false
|
||||||
|
|||||||
@@ -389,6 +389,7 @@ impl Engine {
|
|||||||
| "enable_simd"
|
| "enable_simd"
|
||||||
| "enable_verifier"
|
| "enable_verifier"
|
||||||
| "regalloc_checker"
|
| "regalloc_checker"
|
||||||
|
| "regalloc_verbose_logs"
|
||||||
| "is_pic"
|
| "is_pic"
|
||||||
| "machine_code_cfg_info"
|
| "machine_code_cfg_info"
|
||||||
| "tls_model" // wasmtime doesn't use tls right now
|
| "tls_model" // wasmtime doesn't use tls right now
|
||||||
|
|||||||
Reference in New Issue
Block a user