[fpc-devel] Case block binary search proposal

J. Gareth Moreton gareth at moreton-family.com
Sun Aug 5 18:17:48 CEST 2018


 P.S. The Wiki topic isn't just for the binary search proposal, and can
easily be expanded for proposed and existing paradigms, and become an
advanced programming guide. For example, I would be grateful for
documentation on how the jump table system works.

 Gareth aka. Kit

 On Sun 05/08/18 14:38 , "J. Gareth Moreton" gareth at moreton-family.com
sent:
  Hi everyone,

 This one has been on my backburner for a while.  I spent the last few
days writing up some theory on the process, and feel this might be a good
optimisation for case blocks whose branches call identically-structured
functions, like in the peephole optimizer and the code formatter in Lazarus
(it hashes individual words then sends it through a large case block, where
a function then determines if it should be made bold or not).
 I've written up my notes on the Wiki over here:
http://wiki.freepascal.org/Case_Compiler_Optimization [1] - I hope it's
explained clearly enough, including the requirements.  At the moment I'm
not personally working on it because I have to finish my work on pure
functions.  Still, how does the proposal look?

 When I do write it, the peephole optimizer will be my main test case, as
it (currently) has 36 branches and I can test its speed and correctness
relatively easily.

 Gareth aka. Kit
  _______________________________________________
 fpc-devel maillist - fpc-devel at lists.freepascal.org [2]
 http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
[3]">http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

 

Links:
------
[1] http://wiki.freepascal.org/Case_Compiler_Optimization
[2] mailto:fpc-devel at lists.freepascal.org
[3] http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20180805/a41ae5d7/attachment.html>


More information about the fpc-devel mailing list