<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body smarttemplateinserted="true">
    <div id="smartTemplate4-template">Hi,<br>
      <br>
      <p>case of strings could also use some optimization<br>
      </p>
      does it still call fpc_ansistr_compare_equal ? <br>
      <br>
      fpc could hash the strings, or build a trie, even testing the
      length first would help<br>
      <br>
      <br>
      Cheers,<br>
      Benito </div>
    <br>
    <br>
    <br>
    <div class="moz-cite-prefix">Am 03.08.2018 um 21:57 schrieb J.
      Gareth Moreton:<br>
    </div>
    <blockquote type="cite"
      cite="mid:61669.1533326234@web-cluster.fastnet.co.uk">
      <pre wrap=""> Hi everyone,

 So I'm pondering about attempting to implement the binary search system I
devised for case blocks.  To find the correct case label, you need to
iterate a search loop a fixed maximum of ceil(log2(n)) times, where n is
the number of individual case values (excluding "else").  Given that this
is quite a low number and I managed to get the loop itself down to just 8
instructions (not including the comparison and conditional jump at the
end), this could be unwrapped for low values of ceil(log2(n))... possibly
up to 7 or 8, I'd say.  However, if an exact match is found early, how
serious is the penalty of having a conditional jump forward on each
unrolled iteration for x86-64, whether it's taken or not? (This would be
the equivalent of a Break command)

 Gareth aka. Kit
 
</pre>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
fpc-devel maillist  -  <a class="moz-txt-link-abbreviated" href="mailto:fpc-devel@lists.freepascal.org">fpc-devel@lists.freepascal.org</a>
<a class="moz-txt-link-freetext" href="http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel">http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>