<HTML>
<style> BODY { font-family:Arial, Helvetica, sans-serif;font-size:12px; }</style>At the moment I'm trying to fix some Linux bugs.  When I compile Lazarus with it, I get about a 5% speed increase for -O1 and a 15% speed increase for -O3, but someone else reported a 2% slowdown for -O2 on their own test project.  Either way, I hope my fundamental theory is sound... reducing the number of code passes... and I can convince Florian that the possible increase in maintenance difficulty is worth the performance gain.  If that's successful, then I'll port the relevant code over to i386.<br>
<br>
When it's totally stable, I'll definitely run your own project through it to see what we get.  There are other little speed savings that can be made here and there that add to the running total.  Most of it is simple refactoring.<br>
<br>
For your bug report, I had a look at the Intel® 64 and IA-32 Architectures Software Developer’s Manual to check on some of the assembler routines, and the ones where LEA contains an immediate operand are actually invalid.  My guess though is that the immediate was being converted into a reference that doesn't contain any registers.  I'm not sure if and how an assembler should support that though, even if it's possible to represent the arrangement in raw machine code.  Something for investigation, that's for sure.<br>
<div><br>
</div><div>Gareth<br>
</div> <br>
<br>
<span style="font-weight: bold;">On Tue 04/12/18 19:29 , Simon Kissel simon.kissel@nerdherrschaft.com sent:<br>
</span><blockquote style="BORDER-LEFT: #F5F5F5 2px solid; MARGIN-LEFT: 5px; MARGIN-RIGHT: 0px; PADDING-LEFT: 5px; PADDING-RIGHT: 0px">Hi Gareth,
<br>


<br>

<span style="color: rgb(102, 102, 102);">> A regression like this is quite serious.  I'd recommend opening a
</span><br>

<span style="color: rgb(102, 102, 102);">> bug report with a reproducible case so we can investigate and hopefully fix it within the day.
</span><br>


<br>

created a test project, and opened two tickets:
<br>


<br>

<a target="_blank" href="https://bugs.freepascal.org/view.php?id=34646"><span style="color: red;">https://bugs.freepascal.org/view.php?id=34646</span></a>
<br>

<a target="_blank" href="https://bugs.freepascal.org/view.php?id=34647"><span style="color: red;">https://bugs.freepascal.org/view.php?id=34647</span></a>
<br>


<br>

<span style="color: rgb(102, 102, 102);">> At the moment I'm experimenting with increasing the speed of the
</span><br>

<span style="color: rgb(102, 102, 102);">> optimizer for x86_64, and then porting to i386 when it's proven
</span><br>

<span style="color: rgb(102, 102, 102);">> successful.  Having teething problems though!
</span><br>


<br>

Sounds great. I wish more of our products had 64bit CPUs...
<br>


<br>

What's the speed-up you are seeing on my test project so far?
<br>


<br>

Best regards,
<br>


<br>

Simon
<br>


<br>

_______________________________________________
<br>

fpc-devel maillist  -  <a href="mailto:fpc-devel@lists.freepascal.org">fpc-devel@lists.freepascal.org</a>
<br>

<a target="_blank" href="<a href="http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel">http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel</a>"><span style="color: red;">http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel</span></a>
<br>

<br>

<br>

</blockquote></HTML>