[fpc-devel] Good timing metric test program?

J. Gareth Moreton gareth at moreton-family.com
Tue Feb 26 23:30:02 CET 2019


 Thanks George,
 I've finished and debugged my optimizer overhaul, although performance
varies.  It is predominantly faster than the existing peephole optimizer,
but not always as fast as I'd like (no more than a few seconds).  I figure
I might have introduced one or two bottlenecks during my debugging.  I'll
probably need some kind of profiling tool to figure out where the slowdowns
are, but I'm just glad that I've got it working at last!

 If people are willing to make -O1 and -O2 slightly worse when it comes to
optimisation, or at least -O1, then I can make it faster still, but one of
my philosophies with this overhaul was not to make the compiled code any
worse on -O1 and -O2... only equal or better.

 Gareth aka. Kit

 On Tue 26/02/19 12:46 , "George Bakhtadze" armorcavalry at yandex.com sent:
 Gareth, 

 First of all, thanks for working on compiler optimizations. I think it's
very important. 

 As of benchmark - there is a simple 3D ray tracer benchmark written on
several languages including Pascal. 
 AFAIR Pascal version almost as fast as Java one and slightly faster than
Javascript. 
 There is forum topic about it with source code: 
 http://forum.lazarus.freepascal.org/index.php/topic%2C35700.0.html
[1]">http://forum.lazarus.freepascal.org/index.php/topic,35700.0.html 
 There are also some optimizations made by hand e.g. loop unrolling etc. It
may help to analyze optimizer results. 

 --- 
 Best Regards, George 

 25.02.2019, 17:54, "J. Gareth Moreton" : 
 > Given my recent work with the peephole optimizer, one thing that sprung
to mind is that I don't have a project that tests for performance gains in
a 'real world' program, where little optimisations add up over time. 
Given that my x86-64 optimizer overhaul is rather substantial and makes a
lot of improvements when it comes to conditional jumps and code efficiency,
is there a benchmark that could be used to show the performance improvement
compared to the trunk?  There are small ones that test individual
components, but nothing substantially large that I'm aware of. 

 

Links:
------
[1] http://forum.lazarus.freepascal.org/index.php/topic%2C35700.0.html
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20190226/06fbef33/attachment.html>


More information about the fpc-devel mailing list