This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 3/5] timevar.h: Add an auto_timevar class


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
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]