-
- Downloads
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.
Loading
Please register or sign in to comment