cranelift: Introduce a feature to enable trace logs (#4484)
* Don't use `log::trace` directly but a feature-enabled `trace` macro * Don't emit disassembly based on the log level
This commit is contained in:
@@ -7,6 +7,7 @@ use crate::ir::types::*;
|
||||
use crate::ir::{LibCall, MemFlags, TrapCode};
|
||||
use crate::isa::aarch64::inst::*;
|
||||
use crate::machinst::{ty_bits, Reg, RegClass, Writable};
|
||||
use crate::trace;
|
||||
use core::convert::TryFrom;
|
||||
|
||||
/// Memory label/reference finalization: convert a MemLabel to a PC-relative
|
||||
@@ -39,7 +40,7 @@ pub fn mem_finalize(
|
||||
};
|
||||
let adj = match mem {
|
||||
&AMode::NominalSPOffset(..) => {
|
||||
log::trace!(
|
||||
trace!(
|
||||
"mem_finalize: nominal SP offset {} + adj {} -> {}",
|
||||
off,
|
||||
state.virtual_sp_offset,
|
||||
@@ -3068,7 +3069,7 @@ impl MachInstEmit for Inst {
|
||||
}
|
||||
}
|
||||
&Inst::VirtualSPOffsetAdj { offset } => {
|
||||
log::trace!(
|
||||
trace!(
|
||||
"virtual sp offset adjusted by {} -> {}",
|
||||
offset,
|
||||
state.virtual_sp_offset + offset,
|
||||
|
||||
@@ -16,8 +16,8 @@ use crate::ir::{Opcode, Type, Value};
|
||||
use crate::isa::aarch64::inst::*;
|
||||
use crate::isa::aarch64::AArch64Backend;
|
||||
use crate::machinst::lower::*;
|
||||
use crate::machinst::*;
|
||||
use crate::machinst::{Reg, Writable};
|
||||
use crate::{machinst::*, trace};
|
||||
use crate::{CodegenError, CodegenResult};
|
||||
use smallvec::SmallVec;
|
||||
use std::cmp;
|
||||
@@ -236,7 +236,7 @@ fn lower_value_to_regs<C: LowerCtx<I = Inst>>(
|
||||
ctx: &mut C,
|
||||
value: Value,
|
||||
) -> (ValueRegs<Reg>, Type, bool) {
|
||||
log::trace!("lower_value_to_regs: value {:?}", value);
|
||||
trace!("lower_value_to_regs: value {:?}", value);
|
||||
let ty = ctx.value_ty(value);
|
||||
let inputs = ctx.get_value_as_source_or_const(value);
|
||||
let is_const = inputs.constant.is_some();
|
||||
@@ -608,7 +608,7 @@ pub(crate) fn lower_pair_address<C: LowerCtx<I = Inst>>(
|
||||
let (mut addends64, mut addends32, args_offset) = collect_address_addends(ctx, roots);
|
||||
let offset = args_offset + (offset as i64);
|
||||
|
||||
log::trace!(
|
||||
trace!(
|
||||
"lower_pair_address: addends64 {:?}, addends32 {:?}, offset {}",
|
||||
addends64,
|
||||
addends32,
|
||||
@@ -669,7 +669,7 @@ pub(crate) fn lower_address<C: LowerCtx<I = Inst>>(
|
||||
let (mut addends64, mut addends32, args_offset) = collect_address_addends(ctx, roots);
|
||||
let mut offset = args_offset + (offset as i64);
|
||||
|
||||
log::trace!(
|
||||
trace!(
|
||||
"lower_address: addends64 {:?}, addends32 {:?}, offset {}",
|
||||
addends64,
|
||||
addends32,
|
||||
@@ -1120,7 +1120,7 @@ pub(crate) fn maybe_input_insn<C: LowerCtx<I = Inst>>(
|
||||
op: Opcode,
|
||||
) -> Option<IRInst> {
|
||||
let inputs = c.get_input_as_source_or_const(input.insn, input.input);
|
||||
log::trace!(
|
||||
trace!(
|
||||
"maybe_input_insn: input {:?} has options {:?}; looking for op {:?}",
|
||||
input,
|
||||
inputs,
|
||||
@@ -1128,7 +1128,7 @@ pub(crate) fn maybe_input_insn<C: LowerCtx<I = Inst>>(
|
||||
);
|
||||
if let Some((src_inst, _)) = inputs.inst.as_inst() {
|
||||
let data = c.data(src_inst);
|
||||
log::trace!(" -> input inst {:?}", data);
|
||||
trace!(" -> input inst {:?}", data);
|
||||
if data.opcode() == op {
|
||||
return Some(src_inst);
|
||||
}
|
||||
@@ -1228,7 +1228,7 @@ pub(crate) fn lower_icmp<C: LowerCtx<I = Inst>>(
|
||||
condcode: IntCC,
|
||||
output: IcmpOutput,
|
||||
) -> CodegenResult<IcmpResult> {
|
||||
log::trace!(
|
||||
trace!(
|
||||
"lower_icmp: insn {}, condcode: {}, output: {:?}",
|
||||
insn,
|
||||
condcode,
|
||||
|
||||
@@ -73,7 +73,6 @@ impl TargetIsa for AArch64Backend {
|
||||
let flags = self.flags();
|
||||
let (vcode, regalloc_result) = self.compile_vcode(func, flags.clone())?;
|
||||
|
||||
let want_disasm = want_disasm || log::log_enabled!(log::Level::Debug);
|
||||
let emit_result = vcode.emit(®alloc_result, want_disasm, flags.machine_code_cfg_info());
|
||||
let frame_size = emit_result.frame_size;
|
||||
let value_labels_ranges = emit_result.value_labels_ranges;
|
||||
|
||||
@@ -7,6 +7,7 @@ use crate::isa::s390x::inst::*;
|
||||
use crate::isa::s390x::settings as s390x_settings;
|
||||
use crate::machinst::reg::count_operands;
|
||||
use crate::machinst::{Reg, RegClass};
|
||||
use crate::trace;
|
||||
use core::convert::TryFrom;
|
||||
use regalloc2::Allocation;
|
||||
|
||||
@@ -3239,7 +3240,7 @@ impl MachInstEmit for Inst {
|
||||
}
|
||||
|
||||
&Inst::VirtualSPOffsetAdj { offset } => {
|
||||
log::trace!(
|
||||
trace!(
|
||||
"virtual sp offset adjusted by {} -> {}",
|
||||
offset,
|
||||
state.virtual_sp_offset + offset
|
||||
|
||||
@@ -72,7 +72,6 @@ impl TargetIsa for S390xBackend {
|
||||
let flags = self.flags();
|
||||
let (vcode, regalloc_result) = self.compile_vcode(func, flags.clone())?;
|
||||
|
||||
let want_disasm = want_disasm || log::log_enabled!(log::Level::Debug);
|
||||
let emit_result = vcode.emit(®alloc_result, want_disasm, flags.machine_code_cfg_info());
|
||||
let frame_size = emit_result.frame_size;
|
||||
let value_labels_ranges = emit_result.value_labels_ranges;
|
||||
|
||||
@@ -2789,7 +2789,7 @@ pub(crate) fn emit(
|
||||
}
|
||||
|
||||
Inst::VirtualSPOffsetAdj { offset } => {
|
||||
log::trace!(
|
||||
trace!(
|
||||
"virtual sp offset adjusted by {} -> {}",
|
||||
offset,
|
||||
state.virtual_sp_offset + offset
|
||||
|
||||
@@ -6,7 +6,7 @@ use crate::isa::x64::abi::X64ABIMachineSpec;
|
||||
use crate::isa::x64::inst::regs::pretty_print_reg;
|
||||
use crate::isa::x64::settings as x64_settings;
|
||||
use crate::isa::CallConv;
|
||||
use crate::machinst::*;
|
||||
use crate::{machinst::*, trace};
|
||||
use crate::{settings, CodegenError, CodegenResult};
|
||||
use alloc::boxed::Box;
|
||||
use alloc::vec::Vec;
|
||||
@@ -2236,7 +2236,7 @@ impl MachInst for Inst {
|
||||
}
|
||||
|
||||
fn gen_move(dst_reg: Writable<Reg>, src_reg: Reg, ty: Type) -> Inst {
|
||||
log::trace!(
|
||||
trace!(
|
||||
"Inst::gen_move {:?} -> {:?} (type: {:?})",
|
||||
src_reg,
|
||||
dst_reg.to_reg(),
|
||||
|
||||
@@ -14,11 +14,10 @@ use crate::isa::x64::inst::args::*;
|
||||
use crate::isa::x64::inst::*;
|
||||
use crate::isa::{x64::settings as x64_settings, x64::X64Backend, CallConv};
|
||||
use crate::machinst::lower::*;
|
||||
use crate::machinst::*;
|
||||
use crate::result::CodegenResult;
|
||||
use crate::settings::{Flags, TlsModel};
|
||||
use crate::{machinst::*, trace};
|
||||
use alloc::boxed::Box;
|
||||
use log::trace;
|
||||
use smallvec::SmallVec;
|
||||
use std::convert::TryFrom;
|
||||
use target_lexicon::Triple;
|
||||
|
||||
@@ -67,7 +67,6 @@ impl TargetIsa for X64Backend {
|
||||
let flags = self.flags();
|
||||
let (vcode, regalloc_result) = self.compile_vcode(func, flags.clone())?;
|
||||
|
||||
let want_disasm = want_disasm || log::log_enabled!(log::Level::Debug);
|
||||
let emit_result = vcode.emit(®alloc_result, want_disasm, flags.machine_code_cfg_info());
|
||||
let frame_size = emit_result.frame_size;
|
||||
let value_labels_ranges = emit_result.value_labels_ranges;
|
||||
|
||||
Reference in New Issue
Block a user