Messages in this thread | | | Date | Mon, 4 Jun 2007 18:20:10 -0400 | From | Mathieu Desnoyers <> | Subject | Re: [patch 9/9] Scheduler profiling - Use conditional calls |
| |
* Andi Kleen (andi@firstfloor.org) wrote: > > I see your point, but there is a level of control on the branch I would > > lack by doing so: the ability to put the call in either the if or else > > branch. It is an optimization on i386. > > What does it optimize exactly? >
Nicholas McGuire told me that the non common cases should be put in else branches of if statements for i386. At the time, I did a quick test that correlated what he said, but I seem to be unable to reproduce this behavior now (maybe my code snippet is too simple?): I will then assume that the likely/unlikely (builtin expects) tells everything that is needed to gcc until further notice. Therefore, we can use the form :
if (cond_call(var)), as you proposed.
> > Also, I live in the expectation that, someday, the gcc guys will be nice > > enough to add some kind of support for a nop-based jump that would > > require code patching to put a jump instead. If it ever happens, my > > macro could evolve into this for newer compiler versions, which I could > > not do with the if() statement you are proposing. > > If that ever happens we couldn't use it anyways because Linux still > has to support old compilers for a long time. And when those are dropped the > code could be updated. >
Agreed.
-- Mathieu Desnoyers Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |