<HTML>
<div><style> BODY { font-family:Arial, Helvetica, sans-serif;font-size:12px; }</style>Hi Ryan,</div><div><br>
</div><div>I haven't forgotten about "pure" functions - that's still definitely an area of research for me. I got myself a little bit lost because I'm still trying to work out a solid design plan (for major changes to FPC, I now write a full specification, which are the PDF files I've attached to the bug issues for my x86_64 overhaul and the inline assembly). Additionally, I realised I would need a better means of analysing the intermediate node tree to properly study how a procedure goes together and to get a good idea as to what can be pure and what can't, hence the XML dump feature.</div><div><br>
</div><div>I hate to say it, but I've kind of blocked myself with a lot of things... I can't make any more peephole optimizer improvements until the x86_64 overhaul is merged or outright rejected, and a bug and the "pure" feature are blocked until the XML debug node dump feature is approved.</div><div><br>
</div><div>Gareth aka. Kit<br>
</div><br>
<br>
<br>
<span style="font-weight: bold;">On Sun 17/03/19 02:04 , "Ryan Joseph" ryan@thealchemistguild.com sent:<br>
</span><blockquote style="BORDER-LEFT: #F5F5F5 2px solid; MARGIN-LEFT: 5px; MARGIN-RIGHT: 0px; PADDING-LEFT: 5px; PADDING-RIGHT: 0px">
<br>
<br>
<span style="color: rgb(102, 102, 102);">> On Mar 16, 2019, at 9:54 PM, Ben Grasset <<a href="javascript:top.opencompose('operator97@gmail.com','','','')">operator97@gmail.com</a>> wrote:
</span><br>
<span style="color: rgb(102, 102, 102);">>
</span><br>
<span style="color: rgb(102, 102, 102);">> Inlining of pure assembler functions would actually be immediately, specifically useful to me! I've been having a go at improving FPC scores on "BenchmarksGames", and was so far successful with Binary Trees simple by throwing a really good threading library at it, however, there are some benchmarks that simply can't be fixed without either proper intrinsics or user-specifiable inlinable ASM methods. I have a working re-implmentation of NBody (that is just a direct rewrite of the Rust implementation) where I've implemented __m128 and __m128d as records with static nostackframe assembler "class functions", however it's just not fast enough to be competitive due to the inability to inline any of the assembler methods.
</span><br>
<span style="color: rgb(102, 102, 102);">>
</span><br>
<span style="color: rgb(102, 102, 102);">> Something along these lines is absolutely sorely lacking in FPC currently, don't let anyone tell you otherwise.
</span><br>
<br>
Sounds exciting progress for FPC. Btw what happened to the development of “pure” function modifier that would make it possible to use functions in compile time expressions? I was pretty excited about what could be done with that also.
<br>
<br>
Regards,
<br>
Ryan Joseph
<br>
<br>
_______________________________________________
<br>
fpc-devel maillist - <a href="javascript:top.opencompose('fpc-devel@lists.freepascal.org','','','')">fpc-devel@lists.freepascal.org</a>
<br>
<a target="_blank" href="parse.php?redirect=<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>