aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple-range-cache.h
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2024-06-19 11:42:16 +0200
committerAldy Hernandez <aldyh@redhat.com>2024-06-27 11:09:20 +0200
commitbcdbb85f26aa0d25645d51ddf728a049b201c980 (patch)
treec2bbcb50a088d059430f4700bb999a4a4bb98da3 /gcc/gimple-range-cache.h
parentdafa750c8a6f0a088677871bfaad054881737ab1 (diff)
downloadgcc-bcdbb85f26aa0d25645d51ddf728a049b201c980.zip
gcc-bcdbb85f26aa0d25645d51ddf728a049b201c980.tar.gz
gcc-bcdbb85f26aa0d25645d51ddf728a049b201c980.tar.bz2
Avoid global bitmap space in ranger.
gcc/ChangeLog: * gimple-range-cache.cc (update_list::update_list): Add m_bitmaps. (update_list::~update_list): Initialize m_bitmaps. * gimple-range-cache.h (ssa_lazy_cache): Add m_bitmaps. * gimple-range.cc (enable_ranger): Remove global bitmap initialization. (disable_ranger): Remove global bitmap release.
Diffstat (limited to 'gcc/gimple-range-cache.h')
-rw-r--r--gcc/gimple-range-cache.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/gimple-range-cache.h b/gcc/gimple-range-cache.h
index 63410d5..0ea34d3 100644
--- a/gcc/gimple-range-cache.h
+++ b/gcc/gimple-range-cache.h
@@ -78,8 +78,12 @@ protected:
class ssa_lazy_cache : public ssa_cache
{
public:
- inline ssa_lazy_cache () { active_p = BITMAP_ALLOC (NULL); }
- inline ~ssa_lazy_cache () { BITMAP_FREE (active_p); }
+ inline ssa_lazy_cache ()
+ {
+ bitmap_obstack_initialize (&m_bitmaps);
+ active_p = BITMAP_ALLOC (&m_bitmaps);
+ }
+ inline ~ssa_lazy_cache () { bitmap_obstack_release (&m_bitmaps); }
inline bool empty_p () const { return bitmap_empty_p (active_p); }
virtual bool has_range (tree name) const;
virtual bool set_range (tree name, const vrange &r);
@@ -89,6 +93,7 @@ public:
virtual void clear ();
void merge (const ssa_lazy_cache &);
protected:
+ bitmap_obstack m_bitmaps;
bitmap active_p;
};