blobing  - i meant unnecessarily increase in size, that function loses good 
shape. There is no such word "blobing" in  English. My bad.
let me periphrases 'just wrong' - 'questionable right'. Currently inlining are 
left in hands of programmers. And it is abused as magical performance booster. 
For small function it's must likely true, for larger function it's 
questionable. 
1) it might increase index size for accessing local variables on stack.
2) it might increase jump instruction size
3) it changes code location (code cross page boundaries). For my particular cpu 
there are 64 byte code page. If loop can fit in it, speed is twice as it 
overlaps even one byte over page boundary. Jumping forward is ok (as expected 
code flow is always forward). And there is lager page few kb - calling outside 
- small penalty. As fpc do not manage this any how, it's just pure luck. It 
just might get unlucky. Code align generally do not solve thous things. 
Conclusion: by naked eye one cannot tell inline is any good or not. Inline or 
not to inline is nothing to do with philosophy, it has to be calculated (as 
clang does and fpc don't). 

I'm looking forward for jump optimization to be accepted.

_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to