[PATCH 3/5] timevar.h: Add an auto_timevar class
Richard Biener
richard.guenther@gmail.com
Wed Jan 1 00:00:00 GMT 2014
On Mon, Oct 13, 2014 at 7:45 PM, David Malcolm <dmalcolm@redhat.com> wrote:
> This is used in a couple of places in jit/jit-playback.c to ensure
> that we pop the timevar on every exit path from a function.
>
> I could rewrite them if need be, but it does simplify things.
Sorry to be bikeshedding but auto_timevar sounds odd - this is
just a one-element timevar stack.
Don't have a real better name though :/ Maybe timevar_pushpop ?
Otherwise this looks ok.
Thanks,
Richard.
> Written by Tom Tromey.
>
> gcc/ChangeLog:
> * timevar.h (class auto_timevar): New class.
> ---
> gcc/timevar.h | 24 ++++++++++++++++++++++++
> 1 file changed, 24 insertions(+)
>
> 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 */
> --
> 1.8.5.3
>
More information about the Jit
mailing list