clang generated code sometimes confuses fbt

Dimitry Andric dim at FreeBSD.org
Mon Mar 4 09:16:08 UTC 2013


On 2013-03-04 08:57, Matt Burke wrote:
> On 03/02/13 17:35, Andriy Gapon wrote:
>> To summarize: I would be glad of either clang generated code was
>> "fbt-friendly" or if ctf information was generated for
>> bpobj_iterate_impl. Either is perfect for me.
>
> Apologies if this is a silly suggestion, but are you building with -O0?
> I've noticed backtraces being hard to follow (i.e. skipping intermediate
> and wrapper functions) with a kernel built with the default optimisation
> level, and it seems to me that the same thing may be happening here - the
> wrappers are being optimised out.

No, the wrappers (bpobj_iterate and bpobj_iterate_nofree) are externally
visible functions, so they cannot be optimized out.  Both of them call
bpobj_iterate_impl, which is a static function, e.g. a candidate for
automatic inlining.

However, bpobj_iterate_impl is quite big, and called from 3 different
locations, so it does not actually get inlined, even with -O2.


More information about the freebsd-hackers mailing list