More update-ssa speedup
When working on a smaller region like a loop version copy the main time spent is now dominance fast query recompute which does a full function DFS walk. The dominance queries within the region of interest should be O(log n) without fast queries and we should do on the order of O(n) of them which overall means reasonable complexity. For the artificial testcase I'm looking at this shaves off considerable time again. * tree-into-ssa.cc (update_ssa): Do not forcefully re-compute dominance fast queries for TODO_update_ssa_no_phi.
This commit is contained in:
parent
415d2c38ed
commit
f1782a0a8c
@ -3451,11 +3451,13 @@ update_ssa (unsigned update_flags)
|
||||
phis_to_rewrite.create (last_basic_block_for_fn (cfun) + 1);
|
||||
blocks_to_update = BITMAP_ALLOC (NULL);
|
||||
|
||||
/* Ensure that the dominance information is up-to-date. */
|
||||
calculate_dominance_info (CDI_DOMINATORS);
|
||||
|
||||
insert_phi_p = (update_flags != TODO_update_ssa_no_phi);
|
||||
|
||||
/* Ensure that the dominance information is up-to-date and when we
|
||||
are going to compute dominance frontiers fast queries are possible. */
|
||||
if (insert_phi_p || dom_info_state (CDI_DOMINATORS) == DOM_NONE)
|
||||
calculate_dominance_info (CDI_DOMINATORS);
|
||||
|
||||
/* If there are names defined in the replacement table, prepare
|
||||
definition and use sites for all the names in NEW_SSA_NAMES and
|
||||
OLD_SSA_NAMES. */
|
||||
|
Loading…
Reference in New Issue
Block a user