Only do annotations in debug builds

This commit is contained in:
Chris Fallin
2021-05-18 18:52:34 -07:00
parent c3513b94b0
commit 04c8e46787

View File

@@ -1133,17 +1133,20 @@ impl<'a, F: Function> Env<'a, F> {
OperandPos::Before, OperandPos::Before,
); );
if log::log_enabled!(log::Level::Debug) { #[cfg(debug)]
self.annotate( {
ProgPoint::after(inst), if log::log_enabled!(log::Level::Debug) {
format!( self.annotate(
" prog-move v{} ({:?}) -> v{} ({:?})", ProgPoint::after(inst),
src.vreg().vreg(), format!(
src_policy, " prog-move v{} ({:?}) -> v{} ({:?})",
dst.vreg().vreg(), src.vreg().vreg(),
dst_policy, src_policy,
), dst.vreg().vreg(),
); dst_policy,
),
);
}
} }
// N.B.: in order to integrate with the move // N.B.: in order to integrate with the move
@@ -1711,17 +1714,20 @@ impl<'a, F: Function> Env<'a, F> {
for entry in &list { for entry in &list {
self.ranges[entry.index.index()].bundle = to; self.ranges[entry.index.index()].bundle = to;
if log::log_enabled!(log::Level::Debug) { #[cfg(debug)]
self.annotate( {
entry.range.from, if log::log_enabled!(log::Level::Debug) {
format!( self.annotate(
" MERGE range{} v{} from bundle{} to bundle{}", entry.range.from,
entry.index.index(), format!(
self.ranges[entry.index.index()].vreg.index(), " MERGE range{} v{} from bundle{} to bundle{}",
from.index(), entry.index.index(),
to.index(), self.ranges[entry.index.index()].vreg.index(),
), from.index(),
); to.index(),
),
);
}
} }
} }
self.bundles[to.index()].ranges = list; self.bundles[to.index()].ranges = list;
@@ -1763,18 +1769,21 @@ impl<'a, F: Function> Env<'a, F> {
} }
last_range = Some(entry.range); last_range = Some(entry.range);
if self.ranges[entry.index.index()].bundle == from { #[cfg(debug)]
if log::log_enabled!(log::Level::Debug) { {
self.annotate( if self.ranges[entry.index.index()].bundle == from {
entry.range.from, if log::log_enabled!(log::Level::Debug) {
format!( self.annotate(
" MERGE range{} v{} from bundle{} to bundle{}", entry.range.from,
entry.index.index(), format!(
self.ranges[entry.index.index()].vreg.index(), " MERGE range{} v{} from bundle{} to bundle{}",
from.index(), entry.index.index(),
to.index(), self.ranges[entry.index.index()].vreg.index(),
), from.index(),
); to.index(),
),
);
}
} }
} }
@@ -2698,17 +2707,20 @@ impl<'a, F: Function> Env<'a, F> {
cur_uses.next(); cur_uses.next();
} }
self.annotate( #[cfg(debug)]
existing_range.to, {
format!( self.annotate(
" SPLIT range{} v{} bundle{} to range{} bundle{}", existing_range.to,
cur_lr.index(), format!(
self.ranges[cur_lr.index()].vreg.index(), " SPLIT range{} v{} bundle{} to range{} bundle{}",
cur_bundle.index(), cur_lr.index(),
new_lr.index(), self.ranges[cur_lr.index()].vreg.index(),
new_bundle.index(), cur_bundle.index(),
), new_lr.index(),
); new_bundle.index(),
),
);
}
cur_range = new_range; cur_range = new_range;
cur_bundle = new_bundle; cur_bundle = new_bundle;
@@ -3285,27 +3297,30 @@ impl<'a, F: Function> Env<'a, F> {
); );
debug_assert!(alloc != Allocation::none()); debug_assert!(alloc != Allocation::none());
if log::log_enabled!(log::Level::Debug) { #[cfg(debug)]
self.annotate( {
range.from, if log::log_enabled!(log::Level::Debug) {
format!( self.annotate(
" <<< start v{} in {} (range{}) (bundle{})", range.from,
vreg.index(), format!(
alloc, " <<< start v{} in {} (range{}) (bundle{})",
entry.index.index(), vreg.index(),
self.ranges[entry.index.index()].bundle.index(), alloc,
), entry.index.index(),
); self.ranges[entry.index.index()].bundle.index(),
self.annotate( ),
range.to, );
format!( self.annotate(
" end v{} in {} (range{}) (bundle{}) >>>", range.to,
vreg.index(), format!(
alloc, " end v{} in {} (range{}) (bundle{}) >>>",
entry.index.index(), vreg.index(),
self.ranges[entry.index.index()].bundle.index(), alloc,
), entry.index.index(),
); self.ranges[entry.index.index()].bundle.index(),
),
);
}
} }
// Does this range follow immediately after a prior // Does this range follow immediately after a prior
@@ -3419,18 +3434,21 @@ impl<'a, F: Function> Env<'a, F> {
), ),
alloc, alloc,
}); });
if log::log_enabled!(log::Level::Debug) { #[cfg(debug)]
self.annotate( {
self.cfginfo.block_exit[block.index()], if log::log_enabled!(log::Level::Debug) {
format!( self.annotate(
"blockparam-out: block{} to block{}: v{} to v{} in {}", self.cfginfo.block_exit[block.index()],
from_block.index(), format!(
to_block.index(), "blockparam-out: block{} to block{}: v{} to v{} in {}",
from_vreg.index(), from_block.index(),
to_vreg.index(), to_block.index(),
alloc from_vreg.index(),
), to_vreg.index(),
); alloc
),
);
}
} }
} }
blockparam_out_idx += 1; blockparam_out_idx += 1;
@@ -3482,17 +3500,20 @@ impl<'a, F: Function> Env<'a, F> {
from_block.index(), from_block.index(),
alloc, alloc,
); );
if log::log_enabled!(log::Level::Debug) { #[cfg(debug)]
self.annotate( {
self.cfginfo.block_entry[block.index()], if log::log_enabled!(log::Level::Debug) {
format!( self.annotate(
"blockparam-in: block{} to block{}:into v{} in {}", self.cfginfo.block_entry[block.index()],
from_block.index(), format!(
to_block.index(), "blockparam-in: block{} to block{}:into v{} in {}",
to_vreg.index(), from_block.index(),
alloc to_block.index(),
), to_vreg.index(),
); alloc
),
);
}
} }
} }
blockparam_in_idx += 1; blockparam_in_idx += 1;
@@ -3829,11 +3850,17 @@ impl<'a, F: Function> Env<'a, F> {
input_alloc input_alloc
); );
if input_alloc != output_alloc { if input_alloc != output_alloc {
if log::log_enabled!(log::Level::Debug) { #[cfg(debug)]
self.annotate( {
ProgPoint::before(inst), if log::log_enabled!(log::Level::Debug) {
format!(" reuse-input-copy: {} -> {}", input_alloc, output_alloc), self.annotate(
); ProgPoint::before(inst),
format!(
" reuse-input-copy: {} -> {}",
input_alloc, output_alloc
),
);
}
} }
self.insert_move( self.insert_move(
ProgPoint::before(inst), ProgPoint::before(inst),
@@ -3999,22 +4026,25 @@ impl<'a, F: Function> Env<'a, F> {
self.stats.edits_count = self.edits.len(); self.stats.edits_count = self.edits.len();
// Add debug annotations. // Add debug annotations.
if log::log_enabled!(log::Level::Debug) { #[cfg(debug)]
for i in 0..self.edits.len() { {
let &(pos, _, ref edit) = &self.edits[i]; if log::log_enabled!(log::Level::Debug) {
match edit { for i in 0..self.edits.len() {
&Edit::Move { from, to, to_vreg } => { let &(pos, _, ref edit) = &self.edits[i];
self.annotate( match edit {
ProgPoint::from_index(pos), &Edit::Move { from, to, to_vreg } => {
format!("move {} -> {} ({:?})", from, to, to_vreg), self.annotate(
); ProgPoint::from_index(pos),
} format!("move {} -> {} ({:?})", from, to, to_vreg),
&Edit::BlockParams { );
ref vregs, }
ref allocs, &Edit::BlockParams {
} => { ref vregs,
let s = format!("blockparams vregs:{:?} allocs:{:?}", vregs, allocs); ref allocs,
self.annotate(ProgPoint::from_index(pos), s); } => {
let s = format!("blockparams vregs:{:?} allocs:{:?}", vregs, allocs);
self.annotate(ProgPoint::from_index(pos), s);
}
} }
} }
} }