Re: [PATCH] BUG preserve registers

Linus Torvalds
2002-02-10T04:31:27Z

On Sat, 9 Feb 2002, Andrew Morton wrote:
>
> This is due to BUG() calls in inline functions in headers. The biggest
> culprit is dget(), in dcache.h. This causes the full path of the header file
> to be expanded into each and every compilation unit which includes
> dcache.h.

Hmm. Which brings up another issue: can somebody come up with an idea of
how to make the thing not use the whole pathname, but only the basename
relative to the top-of-tree?

I doubt it is possible, but maybe there is some clever way to avoid it..

> I'm showing thirteen header files, for a total of 83k. I'll do something
> about this...

Ok, so even your gcc obviously is _not_ intelligent enough to throw away
strings from inline functions that aren't used. Oh well.

Note that the correct thing to do may be to un-inline a lot of things.
We've done that before, simply because it often improves performance.

What ends up happening is that some function starts out really small, and
then later on people add logic and debug code to it, and suddenly it's not
really appropriate to inline any more.

Linus