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

Reply via email to