On Sun, Sep 20, 2026 at 4:45 PM Andrew MacLeod <[email protected]> wrote:
>
>
> On 9/19/26 10:54 PM, Liu, Hongtao wrote:
> >>>
> >>>     aff_combination_scale (aff_var, rat);
> >>>     return true;
> >>> @@ -8246,6 +8247,8 @@ tree_ssa_iv_optimize (void)
> >>>     tree_ssa_iv_optimize_init (&data);
> >>>     mark_ssa_maybe_undefs ();
> >>>
> >>> +  enable_ranger (cfun, false);
> >> This looks good now, but I'm curious why you (need to?) pass false to the
> >> use_imm_uses parameter?  I'm not really sure what this guards inside 
> >> ranger.
> > My rough understanding is enable_ranger (cfun, true) will enable inferred 
> > range to get more precise range and cost more compile time.
> > With false for use_imm_users, there're no correctness issue, just wider 
> > range for some values, but it's enough for the issue.
>
> This is more or less true. The on-demand model will look up any
> definitions it needs as well as any uses that feed control flow. It
> wouldn't be able to see other uses such as a dereference at some point
> in the program that causes a range to be non-null later in the program.
>   When TRUE is passed in, ranger will zip along all the immediate use's
> of a name as well to see if there are any statements that cause an
> inferred range.

So it's not about correctness but about how hard it tries?  Similar
to -thread vs. -threadfull in what it calls "resolve"?

The patch is OK as-is then.
Richard.

>
> Andrew
>
>

Reply via email to