I'll have to look that one up.  I might have reinvented the wheel a bit
with the binary search algorithm that I put on there ages ago, which is of
O(log n) and works even if the range of test values is sparse (I came up
with the algorithm originally for the case block in the peephole optimiser,
where there are many hundreds if not thousands of individual opcodes, but
only a handful actually have branches.

 The jump table is of O(1), but starts becoming prohibitive if the range is
sparse.

 Gareth

 On Tue 11/12/18 19:48 , Marco van de Voort f...@pascalprogramming.org sent:

 Op 2018-12-11 om 17:12 schreef J. Gareth Moreton: 
 > 
 > I've just written up a new segment on the Wiki about how jump tables 
 > work.  Since I want to look at implementing my binary search option, I 
 > thought I'd document what already exists; 
 > 
 > http://wiki.freepascal.org/Case_Compiler_Optimization
[1]">http://wiki.freepascal.org/Case_Compiler_Optimization 
 > 
 > The "Jump Table" section is what I've added.  Can people check to see 
 > that I've got it correct? I had to go back and edit it a few times 
 > because I got the
AT">http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel 

 

Links:
------
[1] http://wiki.freepascal.org/Case_Compiler_Optimization
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to