aboutsummaryrefslogtreecommitdiff
path: root/gcc/cfganal.h
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2021-11-10 12:15:20 +0100
committerRichard Biener <rguenther@suse.de>2021-11-11 09:19:49 +0100
commita11afa7af8ae496a403be9f6dac9e72a27d59466 (patch)
tree52bb7be98e95276ddcb557d53eb051ebe15bfca8 /gcc/cfganal.h
parenta97fdde627e64202940112009d45d17f85e4cc61 (diff)
downloadgcc-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.h3
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);