From: dmalcolm Date: Wed, 15 Oct 2014 21:26:02 +0000 (+0000) Subject: timevar.h: Add an auto_timevar class X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c2e7663966a172f45aa5d2590bd2dd3a842653c2;p=thirdparty%2Fgcc.git timevar.h: Add an auto_timevar class 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@216288 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 80cd255d571e..9823522f20e9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2014-10-15 Tom Tromey + + * timevar.h (class auto_timevar): New class. + 2014-10-15 Uros Bizjak PR go/59432 diff --git a/gcc/timevar.h b/gcc/timevar.h index 6703cc94475b..f018e39ce07c 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 */