https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117932

--- Comment #4 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Richard Biener <rgue...@gcc.gnu.org>:

https://gcc.gnu.org/g:57dcb27e7a48151ad5f9a6122c6a40fac31843e9

commit r15-6030-g57dcb27e7a48151ad5f9a6122c6a40fac31843e9
Author: Richard Biener <rguent...@suse.de>
Date:   Fri Dec 6 16:36:39 2024 +0100

    middle-end/117932 - speed up DF solver

    The following addresses slow bitmap operations for maintaining the
    iteration order of df_worklist_dataflow_doublequeue for large number
    of basic-blocks.  The main complexity change is switching the
    worklist and pending bitmaps to tree view, a secondary change is
    avoiding the fully populated initial bitmap for the first iteration
    and instead special-casing that plus avoiding all forward worklist
    bitmap sets in that iteration.  Usually second or later iterations
    are sparse, so optimizing the first iteration seems worthwhile.

    For PR117932 when isolating from ext-dce and fold-mem-offset issues
    this results in a 10% compile-time reduction.

            PR middle-end/117932
            * df-core.cc (df_worklist_propagate_forward): When WORKLIST
            is NULL, do not set bits there.
            (df_worklist_propagate_backward): Likewise.
            (df_worklist_dataflow_doublequeue): Separate first pass
            over all blocks with NULL worklist.
            (df_worklist_dataflow): Do not initialize pending and adjust.

Reply via email to