| Subject | Re: [PATCH 13/13] jump label v9: add docs | From | Peter Zijlstra <> | Date | Thu, 10 Jun 2010 14:49:00 +0200 |
| |
On Wed, 2010-06-09 at 17:39 -0400, Jason Baron wrote: > +The optimization depends on !CC_OPTIMIZE_FOR_SIZE. When CC_OPTIMIZE_FOR_SIZE is > +set, gcc does not always out of line the not taken label path in the same way > +that the "if unlikely()" paths are made out of line. Thus, with > +CC_OPTIMIZE_FOR_SIZE set, this optimization is not always optimal. This may be > +solved in subsequent gcc versions, that allow us to move labels out of line, > +while still optimizing for size. In the case of !CC_OPTIMIZE_FOR_SIZE this > +optimization is seen on high level benchmarks such as tbench where I can get > +~1-2% higher throughput. In addition we are within .5% of the performance of no > +tracepoints compiled in at all.
But does it generate invalid code for whatever -f flag triggers this (-fno-reorder-blocks ?)
|