DIP56 Provide pragma to control function inlining

Walter Bright newshound2 at digitalmars.com
Sun Feb 23 14:10:57 PST 2014


On 2/23/2014 1:53 PM, Walter Bright wrote:
> And yes, performance critical code often suffers from bit rot, and changes in
> the compiler, and needs to be re-tuned now and then.

BTW, just to reiterate, there are *thousands* of optimizations the compiler may 
or may not do. And yes, performance critical code will often rely on them, and 
code is often tuned to 'tickle' certain ones.


For example, I know a fellow years ago who thought he had invented a spectacular 
new string processing algorithm. He had the benchmarks to prove it, and 
published an article with his with/without benchmark.

Unfortunately, the without benchmark contained an extra DIV instruction that, 
due to the vagaries of optimization, the compiler hadn't elided. That DIV had 
nothing to do with the algorithm, but the benchmark timing differences were 
totally due to its presence/absence.

He would have spotted it if he'd ever looked at the asm generated, and saved 
himself from some embarrassment.


I understand that in an ideal world one should never have to look at asm, but if 
you're writing high performance code and don't look at asm, the code is never 
going to beat the competition.


More information about the Digitalmars-d mailing list