Use a per-edge PRE PHI translation cache
authorRichard Biener <rguenther@suse.de>
Mon, 9 Nov 2020 10:09:01 +0000 (11:09 +0100)
committerRichard Biener <rguenther@suse.de>
Mon, 9 Nov 2020 13:07:01 +0000 (14:07 +0100)
commit17c25a454e056f4677649a5ed4a8b8587d29177c
tree95e2f6dc3582c88083041588821e0d602940fb25
parent2d4fa1f79c7b7a01e0b4fa27ee37b7030e6bf93f
Use a per-edge PRE PHI translation cache

This changes the phi translation cache to be per edge which
pushes it off the profiling radar.  For larger testcases the
combined hashtable causes a load of cache misses and making it
per edge allows to shrink the entry further.

2020-11-09  Richard Biener  <rguenther@suse.de>

PR tree-optimization/97765
* tree-ssa-pre.c (bb_bitmap_sets::phi_translate_table): Add.
(PHI_TRANS_TABLE): New macro.
(phi_translate_table): Remove.
(expr_pred_trans_d::pred): Remove.
(expr_pred_trans_d::hash): Simplify.
(expr_pred_trans_d::equal): Likewise.
(phi_trans_add): Adjust.
(phi_translate): Likewise.  Remove hash-table expansion
detection and optimization.
(phi_translate_set): Allocate PHI_TRANS_TABLE here.
(init_pre): Adjsust.
(fini_pre): Free PHI_TRANS_TABLE.
gcc/tree-ssa-pre.c