[gcc r15-3852] tree-optimization/114855 - slow VRP due to equiv oracle queries
Richard Biener
rguenth@gcc.gnu.org
Wed Sep 25 07:00:02 GMT 2024
https://gcc.gnu.org/g:caf3fe7880e62692da45489dc5bcae069c1555c8
commit r15-3852-gcaf3fe7880e62692da45489dc5bcae069c1555c8
Author: Richard Biener <rguenther@suse.de>
Date: Tue Sep 24 11:47:26 2024 +0200
tree-optimization/114855 - slow VRP due to equiv oracle queries
For the testcase in PR114855 VRP takes 320.41s (23%) (after mitigating
backwards threader slowness). This is mostly due to the bitmap check
in equiv_oracle::find_equiv_dom. The following turns this bitmap
to tree view, trading the linear search for a O(log N) one which
improves VRP time to 54.54s (5%).
PR tree-optimization/114855
* value-relation.cc (equiv_oracle::equiv_oracle): Switch
m_equiv_set to tree view.
Diff:
---
gcc/value-relation.cc | 1 +
1 file changed, 1 insertion(+)
diff --git a/gcc/value-relation.cc b/gcc/value-relation.cc
index 45722fcd13a6..d6ad2dd984f6 100644
--- a/gcc/value-relation.cc
+++ b/gcc/value-relation.cc
@@ -321,6 +321,7 @@ equiv_oracle::equiv_oracle ()
m_equiv.create (0);
m_equiv.safe_grow_cleared (last_basic_block_for_fn (cfun) + 1);
m_equiv_set = BITMAP_ALLOC (&m_bitmaps);
+ bitmap_tree_view (m_equiv_set);
obstack_init (&m_chain_obstack);
m_self_equiv.create (0);
m_self_equiv.safe_grow_cleared (num_ssa_names + 1);
More information about the Gcc-cvs
mailing list