Hi!
GCC is not very smart at inlining, and with not tuning -finline-limit
you
get (due to top-down inlining) trivial methods like FillLocStorageImpl
stuff and even ~Loc<1> not inlined which hurts performance a lot. GCC
as
of version 3.2 (I think) has the ability to mark functions as "always
inline". This unfortunately cannot be turned on by sth like #define
inline
__attibute__((always_inline)), but needs to be manually done.
Candidates
would be all Domain related stuff and possibly Mesh and Engine stuff as
well (yes - I get non-inlined Engine::read()s, too...).
Seems like a mess to me (note: intel icpc isnt any better here). I hope
we can sneak something like the -fobey-inline patch from Matt Austern
(see http://gcc.gnu.org/ml/gcc/2003-02/msg01666.html for discussion,
havent found the actual patch, Matt?) into gcc 3.3/3.4... Mark?