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: Turn check macros into functions. (issue6188088)


On Wed, May 16, 2012 at 2:43 PM, Diego Novillo <dnovillo@google.com> wrote:
> On 12-05-16 05:41 , Richard Guenther wrote:
>
>> What's the reason for templating these functions? ?They all take trees as
>> parameter!?
>
>
> True. ?I don't recall what Lawrence had in mind, but I remember that by
> using templates here, you don't need to deal with the mess of distinguishing
> tree from const_tree, and having to force constness out with ugly casts.

Well, but you get no typesafety for it in return.  You can simply provide
a const_tree overload.  With using templates you are also forced to retain
these functions in the header file - another thing that I suppose you guys
were about to "fix"?  It's after all debugging code.

> Additionally, templates are producing slightly smaller code than the
> non-template variant (about 0.2% smaller). ?I'm not actually sure why this
> happens, but it's consistent across all binaries.

Well, what did you compare?  Make sure to not have -fkeep-inline-functions,
otherwise you get all bodies as compared to only the instantiated bodies.

Richard.

>
> Diego.


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