aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/timevar.h24
2 files changed, 28 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 80cd255..9823522 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/timevar.h b/gcc/timevar.h
index 6703cc9..f018e39 100644
--- a/gcc/timevar.h
+++ b/gcc/timevar.h
@@ -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 */