timevar.h: Add an auto_timevar class
authorTom Tromey <tromey@redhat.com>
Wed, 15 Oct 2014 21:26:02 +0000 (21:26 +0000)
committerDavid Malcolm <dmalcolm@gcc.gnu.org>
Wed, 15 Oct 2014 21:26:02 +0000 (21:26 +0000)
Patch authored by Tom Tromey; originally contributed by him to jit
branch on 2014-03-19.

gcc/ChangeLog:
* timevar.h (class auto_timevar): New class.

From-SVN: r216288

gcc/ChangeLog
gcc/timevar.h

index 80cd255d571ec69837ceab48126c9d79831383df..9823522f20e97ccb17cb7131275f2dfdf1dfacd5 100644 (file)
@@ -1,3 +1,7 @@
+2014-10-15  Tom Tromey  <tromey@redhat.com>
+
+       * timevar.h (class auto_timevar): New class.
+
 2014-10-15  Uros Bizjak  <ubizjak@gmail.com>
 
        PR go/59432
index 6703cc94475bc0772d24334592b8c5a98e6eb9a7..f018e39ce07c72507ae99b1088bf5f543b87cd62 100644 (file)
@@ -110,6 +110,30 @@ timevar_pop (timevar_id_t tv)
     timevar_pop_1 (tv);
 }
 
+// This is a simple timevar wrapper class that pushes a timevar in its
+// constructor and pops the timevar in its destructor.
+class auto_timevar
+{
+ public:
+  auto_timevar (timevar_id_t tv)
+    : m_tv (tv)
+  {
+    timevar_push (m_tv);
+  }
+
+  ~auto_timevar ()
+  {
+    timevar_pop (m_tv);
+  }
+
+ private:
+
+  // Private to disallow copies.
+  auto_timevar (const auto_timevar &);
+
+  timevar_id_t m_tv;
+};
+
 extern void print_time (const char *, long);
 
 #endif /* ! GCC_TIMEVAR_H */