/[pcre]/code/trunk/doc/html/pcrejit.html
ViewVC logotype

Diff of /code/trunk/doc/html/pcrejit.html

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1220 by ph10, Wed Oct 31 17:42:29 2012 UTC revision 1221 by ph10, Sun Nov 11 20:27:03 2012 UTC
# Line 64  JIT. The support is limited to the follo Line 64  JIT. The support is limited to the follo
64    Intel x86 32-bit and 64-bit    Intel x86 32-bit and 64-bit
65    MIPS 32-bit    MIPS 32-bit
66    Power PC 32-bit and 64-bit    Power PC 32-bit and 64-bit
67    SPARC 32-bit (experimental)    SPARC 32-bit (experimental)
68  </pre>  </pre>
69  If --enable-jit is set on an unsupported platform, compilation fails.  If --enable-jit is set on an unsupported platform, compilation fails.
70  </P>  </P>
# Line 73  A program that is linked with PCRE 8.20 Line 73  A program that is linked with PCRE 8.20
73  available by calling <b>pcre_config()</b> with the PCRE_CONFIG_JIT option. The  available by calling <b>pcre_config()</b> with the PCRE_CONFIG_JIT option. The
74  result is 1 when JIT is available, and 0 otherwise. However, a simple program  result is 1 when JIT is available, and 0 otherwise. However, a simple program
75  does not need to check this in order to use JIT. The normal API is implemented  does not need to check this in order to use JIT. The normal API is implemented
76  in a way that falls back to the interpretive code if JIT is not available. For  in a way that falls back to the interpretive code if JIT is not available. For
77  programs that need the best possible performance, there is also a "fast path"  programs that need the best possible performance, there is also a "fast path"
78  API that is JIT-specific.  API that is JIT-specific.
79  </P>  </P>
80  <P>  <P>
# Line 407  callback. Line 407  callback.
407  </P>  </P>
408  <br><a name="SEC11" href="#TOC1">JIT FAST PATH API</a><br>  <br><a name="SEC11" href="#TOC1">JIT FAST PATH API</a><br>
409  <P>  <P>
410  Because the API described above falls back to interpreted execution when JIT is  Because the API described above falls back to interpreted execution when JIT is
411  not available, it is convenient for programs that are written for general use  not available, it is convenient for programs that are written for general use
412  in many environments. However, calling JIT via <b>pcre_exec()</b> does have a  in many environments. However, calling JIT via <b>pcre_exec()</b> does have a
413  performance impact. Programs that are written for use where JIT is known to be  performance impact. Programs that are written for use where JIT is known to be
414  available, and which need the best possible performance, can instead use a  available, and which need the best possible performance, can instead use a
415  "fast path" API to call JIT execution directly instead of calling  "fast path" API to call JIT execution directly instead of calling
416  <b>pcre_exec()</b> (obviously only for patterns that have been successfully  <b>pcre_exec()</b> (obviously only for patterns that have been successfully
417  studied by JIT).  studied by JIT).
418  </P>  </P>
419  <P>  <P>
420  The fast path function is called <b>pcre_jit_exec()</b>, and it takes exactly  The fast path function is called <b>pcre_jit_exec()</b>, and it takes exactly
421  the same arguments as <b>pcre_exec()</b>, plus one additional argument that  the same arguments as <b>pcre_exec()</b>, plus one additional argument that
422  must point to a JIT stack. The JIT stack arrangements described above do not  must point to a JIT stack. The JIT stack arrangements described above do not
423  apply. The return values are the same as for <b>pcre_exec()</b>.  apply. The return values are the same as for <b>pcre_exec()</b>.
424  </P>  </P>
# Line 431  for validity. In the interests of speed, Line 431  for validity. In the interests of speed,
431  fast path, and if invalid data is passed, the result is undefined.  fast path, and if invalid data is passed, the result is undefined.
432  </P>  </P>
433  <P>  <P>
434  Bypassing the sanity checks and the <b>pcre_exec()</b> wrapping can give  Bypassing the sanity checks and the <b>pcre_exec()</b> wrapping can give
435  speedups of more than 10%.  speedups of more than 10%.
436  </P>  </P>
437  <br><a name="SEC12" href="#TOC1">SEE ALSO</a><br>  <br><a name="SEC12" href="#TOC1">SEE ALSO</a><br>

Legend:
Removed from v.1220  
changed lines
  Added in v.1221

  ViewVC Help
Powered by ViewVC 1.1.5