Skip to content
Snippets Groups Projects
Commit 57dcb27e authored by Richard Biener's avatar Richard Biener Committed by Richard Biener
Browse files

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.
parent d4e1f7cf
No related branches found
No related tags found
No related merge requests found
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment