<HTML>
<style> BODY { font-family:Arial, Helvetica, sans-serif;font-size:12px; }</style>Hi guys,<br>
<br>
So I'm still experimenting and researching with the deep optimiser, and I'm starting to have some successes... until I found a compiler bug!<br>
<br>
https://bugs.freepascal.org/view.php?id=33794<br>
<br>
What I'm trying to do, and something which I'd like to try out with the regular peephole optimiser at some point, is using a sorted list that maps an assembler command to a handler procedure and using a binary search to find the correct routine.  This will speed up the optimiser from O(n) (i.e. the speed of "case X of") to O(log n) per line of code, where n is the different number of assembler commands it has to deal with, but the compiler produces incorrect code with the algorithm I'm using, and triggers an internal error if -O3 is specified.  A trimmed down sample project is attached with the ticket.<br>
<br>
Even if the deep optimiser is an unstable, unusable failure, I found a bug anyway!<br>
<br>
Gareth aka. Kit<br>
 </HTML>