diff options
author | Richard Biener <rguenther@suse.de> | 2021-11-10 12:15:20 +0100 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2021-11-11 09:19:49 +0100 |
commit | a11afa7af8ae496a403be9f6dac9e72a27d59466 (patch) | |
tree | 52bb7be98e95276ddcb557d53eb051ebe15bfca8 /gcc/cfganal.h | |
parent | a97fdde627e64202940112009d45d17f85e4cc61 (diff) | |
download | gcc-a11afa7af8ae496a403be9f6dac9e72a27d59466.zip gcc-a11afa7af8ae496a403be9f6dac9e72a27d59466.tar.gz gcc-a11afa7af8ae496a403be9f6dac9e72a27d59466.tar.bz2 |
Apply TLC to control dependence compute
This makes the control dependence compute avoid a find_edge
and optimizes allocation by embedding the bitmap head into the
vector of control dependences instead of allocating all of them.
It also uses a local bitmap obstack.
The bitmap changes make it necessary to shuffle some includes.
2021-11-10 Richard Biener <rguenther@suse.de>
* cfganal.h (control_dependences::control_dependence_map):
Embed bitmap_head.
(control_dependences::m_bitmaps): New.
* cfganal.c (control_dependences::set_control_dependence_map_bit):
Adjust.
(control_dependences::clear_control_dependence_bitmap):
Likewise.
(control_dependences::find_control_dependence): Do not
find_edge for the abnormal edge test.
(control_dependences::control_dependences): Instead do not
add abnormal edges to the edge list. Adjust.
(control_dependences::~control_dependences): Likewise.
(control_dependences::get_edges_dependent_on): Likewise.
* function-tests.c: Include bitmap.h.
gcc/analyzer/
* supergraph.cc: Include bitmap.h.
gcc/c/
* gimple-parser.c: Shuffle bitmap.h include.
Diffstat (limited to 'gcc/cfganal.h')
-rw-r--r-- | gcc/cfganal.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/cfganal.h b/gcc/cfganal.h index 31ce56c..7ef4319 100644 --- a/gcc/cfganal.h +++ b/gcc/cfganal.h @@ -44,8 +44,9 @@ private: void set_control_dependence_map_bit (basic_block, int); void clear_control_dependence_bitmap (basic_block); void find_control_dependence (int); - vec<bitmap> control_dependence_map; + vec<bitmap_head> control_dependence_map; vec<std::pair<int, int> > m_el; + bitmap_obstack m_bitmaps; }; extern bool mark_dfs_back_edges (void); |