Only do annotations in debug builds
This commit is contained in:
250
src/ion/mod.rs
250
src/ion/mod.rs
@@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user