<HTML>
<style> BODY { font-family:Arial, Helvetica, sans-serif;font-size:12px; }</style>I don't know much about AVR yet, but who knows. At the moment I'm researching how inline Pascal procedures are compiled and seeing how it can be translated into assembler routines. It might end up that I end up writing a kind of mid-level assembler within the Pascal compiler that allows the registers to be changed where possible.<br>
<br>
Unless its stability is proven, the Deep Optimizer and the assembly inliner will be -O4 options, although I would like to get them down to -O3 ideally, especially the Deep Optimizer because that is purely at assembler level where the registers are no longer virtual, and in most cases, lines of code are being removed or rearranged rather than added.<br>
<br>
Gareth aka. Kit<br>
<br>
<br>
<span style="font-weight: bold;">On Mon 14/05/18 18:07 , "Christo Crause" christo.crause@gmail.com sent:<br>
</span><blockquote style="BORDER-LEFT: #F5F5F5 2px solid; MARGIN-LEFT: 5px; MARGIN-RIGHT:0px; PADDING-LEFT: 5px; PADDING-RIGHT: 0px"><div dir="auto"><div>This sounds great! Perhaps some of your work will trickle down to the AVR target someday. </div><div dir="auto"><br>
</div><div dir="auto">Best regards, </div><div dir="auto">Christo<br>
<div class="gmail_extra" dir="auto"><br>
<div class="gmail_quote">On 13 May 2018 10:31 pm, "J. Gareth Moreton" <<a href="javascript:top.opencompose('gareth@moreton-family.com','','','')">gareth@moreton-family.com</a>> wrote:<br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Thanks for your kind words, Christo. A lot of this is personal research, but I would like to make some elements work. For inline support on assembler routines, I'm going to be rather conservative about what will be successful - for example, if there exists a CALL operation inside the routine, I will stop trying to inline it because there's no telling what it will do to affect the registers.<br>
<br>
For the Deep Optimizer, I've programmed a coloured text output of an assembled procedure that I will probably make a feature that can be included with a $DEFINE in the Free Pascal source code, as the intention of it is to show what the assembled procedure is before it is optimised with data flow analysis, and then what it is after optimisation. Alongside standard hints and warnings, it can easily be adapted to show things that look suspicious such as an uninitialised register. We'll see.<br>
<br>
Gareth aka. Kit<br>
</blockquote></div><br>
</div></div></div>
</blockquote></HTML>