gcc and inlining
Richard Guenther
rguenth at tat.physik.uni-tuebingen.de
Fri Mar 7 21:14:58 UTC 2003
[sorry - my local mailing is broken currently, so just ignore duplicates,
if you get some]
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?
Any other bright ideas?
Thanks, Richard.
--
Richard Guenther <richard.guenther at uni-tuebingen.de>
WWW: http://www.tat.physik.uni-tuebingen.de/~rguenth/
More information about the pooma-dev
mailing list