diff options
author | Richard Biener <rguenther@suse.de> | 2022-07-13 13:52:59 +0200 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2022-07-13 14:58:34 +0200 |
commit | c7970b146f98f58a803a37e9a0b21bb97f1dadd8 (patch) | |
tree | 004a0f2fd9c19a8fc3fcee3a00716d2bf46a2e36 /libgo/sysinfo.c | |
parent | 0c5730a64d9ee29b84cb423cdb2cf3ab3c568701 (diff) | |
download | gcc-c7970b146f98f58a803a37e9a0b21bb97f1dadd8.zip gcc-c7970b146f98f58a803a37e9a0b21bb97f1dadd8.tar.gz gcc-c7970b146f98f58a803a37e9a0b21bb97f1dadd8.tar.bz2 |
Speed up DOM record_temporary_equivalences
The following gets away computing a dominance bitmap when
fast queries are not available and we are doing
back_propagate_equivalences. The comuted bitmap can be
cheaply kept up-to-date during the domwalk since it is
simply the set of blocks on the domwalk stack.
Abstraction of the threading makes this somewhat awkward
but it also fulfills the fixme comment in only considering
equivalences in already (domwalk) visited blocks, even when
querying from the outgoing block of a forward thread. Maybe
that's not what is intended but at least we have no testsuite
coverage of such missed equivalences.
* tree-ssa-dom.h (record_temporary_equivalences): Remove.
* tree-ssa-dom.cc (dom_jt_state::m_blocks_on_stack): New.
(dom_jt_state::get_blocks_on_stack): Likewise.
(dom_opt_dom_walker::dom_opt_dom_walker): Take dom_jt_state.
(back_propagate_equivalences): Remove dominator bitmap
compute and instead use passed in m_blocks_on_stack.
(record_temporary_equivalences): Likewise.
(record_equivalences_from_incoming_edge): Likewise.
(dom_opt_dom_walker::before_dom_children): Maintain and
pass down blocks on stack.
(dom_opt_dom_walker::after_dom_children): Likewise.
Diffstat (limited to 'libgo/sysinfo.c')
0 files changed, 0 insertions, 0 deletions