On 10/28/25 2:13 PM, Andrew MacLeod wrote:
Mostly its not the right tool. Its designed for the threader where it
wants to explore ranges if we follow a specific path through the CFG..
its tries different paths to see if we can resolve conditions along a
specific path and then thread them wehen we can Creating a path that
is a single edge doesn't buy you anything beyond what range_on_edge will
give you.
Right. In the threader case we're trying to bypass conditions that have
a known value on some paths, but perhaps not all paths reaching the
condition.
For the case we're concerned about in compute_transp I think we need to
know that all paths that reach the loop have tested the input value is
nonzero to ensure the loop terminates and we can convert the loop to a
ctz. So path sensitive ranges aren't appropriate.
Jeff