On Fri, 11 Nov 2022 11:17:17 -0500
Andrew MacLeod via Gcc-patches <[email protected]> wrote:
> diff --git a/gcc/tree-vrp.cc b/gcc/tree-vrp.cc
> index 3393c73a7db..a474d9d11e5 100644
> --- a/gcc/tree-vrp.cc
> +++ b/gcc/tree-vrp.cc
> @@ -4485,6 +4486,7 @@ public:
> for (gphi_iterator gsi = gsi_start_phis (bb); !gsi_end_p (gsi);
> gsi_next (&gsi))
> m_ranger->register_inferred_ranges (gsi.phi ());
> + m_last_bb_stmt = last_stmt (bb);
> }
>
> void post_fold_bb (basic_block bb) override
> @@ -4497,19 +4499,14 @@ public:
> void pre_fold_stmt (gimple *stmt) override
> {
> m_pta->visit_stmt (stmt);
> + // If this is the last stmt and there are inferred ranges, reparse the
> + // block for transitive inferred ranges that occur earlier in the block.
> + if (stmt == m_last_bb_stmt)
> + m_ranger->register_transitive_inferred_ranges (gimple_bb (stmt));
> }
So of course it doesn't really matter what that stmt was, a non_debug
is as good as a debug one AFAIU, it's just a marker, as good as any SSA
version or id, i suppose. So gsi_last_nondebug_bb(bb) is not strictly
needed, fine.
But since it's last_stmt(), do you have an opinion on 1) in
https://gcc.gnu.org/pipermail/gcc-help/2021-November/140908.html
by chance, as you seem to use it..
thanks,