Messages in this thread | | | Date | Wed, 27 Oct 2010 19:00:23 +0200 | From | Andi Kleen <> | Subject | Re: fyi: gcc33-hammer crashes when compiling kvm emulate.c |
| |
> Would be good to have __fastpath and __slowpath function attributes. > > __fastpath would always be optimized for speed, __slowpath always > for size, and everything else would use the default (determined by > CONFIG_CC_OPTIMIZE_FOR_SIZE).
> > Looks like gcc has support for this, with __attribute__((hot)), > __attribute__((cold)), and __attribute__((optimize)).
I had patches for a long time, but last time I tried it didn't help too much. (basically make __init hot/cold and mark a few functions) Similar things can be also done with unrolling. The Optimize attribute is currently quite broken in gcc and shouldn't be used.
The main reason I didn't post them is that I didn't want another likely/unlikely with people sprinkling them randomly and never looking at profile logs. I am to blame for likely()/unlikely() originally and it got abused so much that I regretted it alot. So I don't think just exposing that is a good idea right now.
I think there are some other ways to do that better, but they will need more work.
-Andi -- ak@linux.intel.com -- Speaking for myself only.
| |