Fix statistic accounting for auto_vec and auto_bitmap
authorRichard Biener <rguenther@suse.de>
Mon, 1 Feb 2021 14:41:19 +0000 (15:41 +0100)
committerRichard Biener <rguenther@suse.de>
Mon, 1 Feb 2021 15:51:29 +0000 (16:51 +0100)
This fixes accounting issues with using auto_vec and auto_bitmap
for -fmem-report.

2021-02-01  Richard Biener  <rguenther@suse.de>

* vec.h (auto_vec::auto_vec): Add memory stat parameters
and pass them on.
* bitmap.h (auto_bitmap::auto_bitmap): Likewise.

gcc/bitmap.h
gcc/vec.h

index f9d6f4a39db9d2d973515d73fee681d8662b8711..84632af7009846f8a6dbb4f2940293c76bc00161 100644 (file)
@@ -939,8 +939,10 @@ bmp_iter_and_compl (bitmap_iterator *bi, unsigned *bit_no)
 class auto_bitmap
 {
  public:
-  auto_bitmap () { bitmap_initialize (&m_bits, &bitmap_default_obstack); }
-  explicit auto_bitmap (bitmap_obstack *o) { bitmap_initialize (&m_bits, o); }
+  auto_bitmap (ALONE_CXX_MEM_STAT_INFO)
+    { bitmap_initialize (&m_bits, &bitmap_default_obstack PASS_MEM_STAT); }
+  explicit auto_bitmap (bitmap_obstack *o CXX_MEM_STAT_INFO)
+    { bitmap_initialize (&m_bits, o PASS_MEM_STAT); }
   ~auto_bitmap () { bitmap_clear (&m_bits); }
   // Allow calling bitmap functions on our bitmap.
   operator bitmap () { return &m_bits; }
index bc32299779efa5d531b47cfd54980efe34b6dca0..24df2db0eebab139fa61de8af130b7669c93aafd 100644 (file)
--- a/gcc/vec.h
+++ b/gcc/vec.h
@@ -1519,11 +1519,11 @@ public:
     this->m_vec = &m_auto;
   }
 
-  auto_vec (size_t s)
+  auto_vec (size_t s CXX_MEM_STAT_INFO)
   {
     if (s > N)
       {
-       this->create (s);
+       this->create (s PASS_MEM_STAT);
        return;
       }
 
@@ -1548,7 +1548,7 @@ class auto_vec<T, 0> : public vec<T, va_heap>
 {
 public:
   auto_vec () { this->m_vec = NULL; }
-  auto_vec (size_t n) { this->create (n); }
+  auto_vec (size_t n CXX_MEM_STAT_INFO) { this->create (n PASS_MEM_STAT); }
   ~auto_vec () { this->release (); }
 
   auto_vec (vec<T, va_heap>&& r)