Author: Dave Gomboc
Date: 00:04:09 09/18/01
Go up one level in this thread
On September 17, 2001 at 16:45:25, Dann Corbit wrote: >On September 17, 2001 at 16:38:39, Heiner Marxen wrote: > >>On September 17, 2001 at 04:19:20, Vincent Diepeveen wrote: >> >>[snip] >>>However the problem is that the compiler rewrites those branches! What >>>i would need is a single option in the compiler to not rewrite the >>>fallthrough principle of a branch. So use an extra instruction like >>>unconditional jumps to garantuee the branch. >>> >>>I'm not a compiler expert of course to know this, but even better >>>for and perhaps doable would be a special statement inside the code >>>letting the compiler know that this branch must follow fallthrough >>>principle and shouldn't get rewritten. That's even better! >> >>I have thought about this kind of optimization (and its possible failure) >>myself repeatedly over the years. >>While I'm not exactly a "compiler expert", I've seen and extended C compiler >>code generations and optimizers. >> >>What you suggest is a "pragma", an explicit hint by the programmer. >>The statement basically is that a certain condition very rarely evaluates >>to TRUE (or FALSE). That sounds fine. But it can be improved. >>Sometimes it is important exactly how rare that condition is, in order >>to determine the best code for it. I.e. I would like to express a >>numeric frequency, like 1 in 4, 1 in 10 or even 1 in 10000. >> >>Taking this a step further I come to the conclusion, that I (the programmer) >>do NOT want to state these frequencies, but rather want the computer >>to gather this kind of statistical information (how rare are some branches). >>The idea is to have an instrumented executable which gatheres this data, >>and us it for a second compiler run. >> >>In fact, I have seen such an optimization sceme in place on a HP-UX machine. >>When I tried to use it, it resulted in an additional speedup between >>5% and 23% (!) over normal optimization. That was for Chest on a >>HPPA machine, HP's RISC architecture. >> >>Instead of a pragma, which I have to provide (and which may be wrong), >>I much rather would like to have a data collection phase, and an optimization >>based on such profiling data. >> >>I'm not sure what plans the gcc guys have in their pipeline, but I would >>not be surprised if there were plans to do something along the above idea. > >The Intel compiler also does this. They call it PGO (Program Guided >Optimization). IIRC SGI's compiler also does this. Dave
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.