pub struct Counts { /* private fields */ }Expand description
What the walks have cost, which section 9.7 asks for as its own counter.
The walk is charged to whichever pass made it, so -ftime-report shows it under GVN and PRE
and not under memory SSA. That is misleading, and the fix section 9.7 asks for is to report
the step count separately from the wall time, because it is the thing to look at when a
pathological input turns up.
Implementations§
Source§impl Counts
impl Counts
Sourcepub const fn steps(&self) -> u64
pub const fn steps(&self) -> u64
How many defs those walks looked at, which is one alias query each.
Sourcepub const fn exhausted(&self) -> u64
pub const fn exhausted(&self) -> u64
How many walks ended by running out of budget.
This is the number section 9.3 says decides whether the cache gets built. Above one percent of walks and the budget is too small or the alias analysis is too weak.
Sourcepub const fn rewritten(&self) -> u64
pub const fn rewritten(&self) -> u64
How many times a caller rewrote the reference and the walk carried on with the new one.
A rewrite starts a walk of its own, so this is both how much work the translate callback
is asking for and how much it is getting, and it is the counter that says whether the
callback is doing anything at all on a given build.