https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93199
--- Comment #20 from Richard Biener <rguenth at gcc dot gnu.org> --- (In reply to Martin Liška from comment #19) > Created attachment 47631 [details] > Patch candidate for #c15 > > I've got a patch for #c15. > @Richi: Is it something you expected? Well - there's the leh_state passed to both callers of the function so I expected a patch to amend that rather than adding an on-the-side caching hash-map. So basically whenever we push a non-CLEANUP update leh_state->xyz and when backtracking update it back (the whole process looked recursive from a quick look). > I see the following speed up: > w/ verification: 9.9 -> 8.7s > w/o verification: 4.8 -> 3.7 > > Now perf report looks like: > 5.41% cc1plus cc1plus [.] > hash_table<hash_map<gimple*, int, > simple_hashmap_traits<default_hash_traits<gimple*>, int> >::hash_entry, > false, xcallocator>::find_with_hash > 3.79% cc1plus cc1plus [.] mark_used_flags > 3.33% cc1plus cc1plus [.] (anonymous > namespace)::dom_info::calc_idoms > 3.06% cc1plus cc1plus [.] (anonymous > namespace)::dom_info::calc_dfs_tree_nonrec > 2.68% cc1plus cc1plus [.] rtl_verify_flow_info_1 > 2.52% cc1plus cc1plus [.] verify_ssa > 2.08% cc1plus cc1plus [.] rtl_verify_flow_info