[fpc-devel] x86_64 Optimizer Overhaul

J. Gareth Moreton gareth at moreton-family.com
Sat Dec 22 21:04:28 CET 2018


 Have to apologise again for my web client making life difficult for the
mail archive system.

 Currently I'm a little reluctant to put in the "incq" fix because the code
isn't equivalent.  More than anything, it's a very minor bug with the node
system in that it writes the full 64-bit register instead of the 32-bit
register for LongInts and LongWords, it seems.  I might be able to exploit
the bug in a very narrow range of circumstances, and if I'm able to make a
reproducible test case, I'll report it.

 Nevertheless, if I'm not able to exploit it, it's something that might be
worth fixing if only because it will make optimisation easier and correct.

 Also note that "INC" is generally only generated if you're optimising for
size, because modern CPUs work better with "ADD" due to how it modifies the
RFLAGS register.

 For the overhaul in general, I have it ported over to i386 on my working
branch, since I've got x86_64 working without any breaking bugs.

 Even if just for a temporary debugging measure, I'm considering options to
allow the writing of node trees to an XML file or some such, since I think
this will allow easier debugging of that part of the compiler.

 Gareth aka. Kit
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20181222/047bf8e1/attachment.html>


More information about the fpc-devel mailing list