[fpc-devel] x86_64 Optimizer Overhaul

J. Gareth Moreton gareth at moreton-family.com
Sat Dec 15 16:18:25 CET 2018


 Ah right, so things like "TmpUsedRegs" (an array of TUsedRegs) constantly
being created and destroyed in the peephole optimizer is actually not that
much of a penalty hit, and creating a pooled object for continuous use
doesn't give that much of a performance gain?

 Gareth

 On Sat 15/12/18 16:12 , Florian Klämpfl florian at freepascal.org sent:
 Am 12.12.2018 um 13:49 schrieb Ryan Joseph: 
 > 
 > 
 >> On Dec 12, 2018, at 7:20 PM, Martok  wrote: 
 >> 
 >> Checking out the memory manager(s) could be useful as well - there are
a lot of 
 >> small allocations, that generally tends to put much stress on it. 
 >> And any improvement there would also directly benefit user
applications. 
 > 
 > I was going to say the same thing myself and even planned to do a test.
My profiles show the top hits being getmem/freemem which really don’t
need to be there. 
 > 
 > There’s no reason to be allocating and freeing nodes (for example)
over and over again when we could just allocate a large pool at startup and
return to the pool instead of freeing. It would make the compiler utilize
more memory but that’s a good trade off for me personally. This is
especially a good idea because the compiler is a one pass program so leaks
over the long term aren’t a problem. 

 The memory manager itself pools already, so no need for the compiler. If
somebody wants to improve the heap manager: 
 implement OS supported re-allocations (OS can move memory by just
shuffling pages). 
 _______________________________________________ 
 fpc-devel maillist - fpc-devel at lists.freepascal.org [2] 
 http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
[3]">http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel 

 

Links:
------
[1] mailto:listbox at martoks-place.de
[2] mailto:fpc-devel at lists.freepascal.org
[3] http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20181215/98945cef/attachment.html>


More information about the fpc-devel mailing list