On 11/15/2021 3:05 PM, Martin Sebor via Gcc-patches wrote:
The deeply nested PHI handling in get_range_strlen_dynamic makes
the code bigger and harder to follow than it would be if done in
its own function.  The attached patch does that.

In addition, the get_range_strlen family of functions use a bitmap
to avoid infinite recursion.  Rather than dynamically allocating
and freeing it on demand the attached patch simplifies the code
by using an instance of auto_bitmap.  This avoids the risk of
neglecting to deallocate the bitmap.

Tested on x86_64-linux.

Martin

gcc-get_range_strlen_dynamic.diff

Slightly simplify get_range_strlen interface.

gcc/ChangeLog:

        * gimple-fold.c (get_range_strlen): Take bitmap as an argument rather
        than a pointer to it.
        (get_range_strlen_tree): Same.  Remove bitmap allocation.  Use
        an auto_bitmap.
        (get_maxval_strlen): Use an auto_bitmap.
        * tree-ssa-strlen.c (get_range_strlen_dynamic): Factor out PHI
        handling...
        (get_range_strlen_phi): ...into this function.
        (printf_strlen_execute): Dump pointer query cache contents when
        details are requisted.
No really a bugfix, but I'll go ahead and ACK for the trunk. Obviously the bar is going to be going up now that we're in stage3 :-)

jeff

Reply via email to