feature: implemented a simple optimizing JIT compiler targeting x86_64 for the Thompson VM.
merged the master branch to x64-jit.
bugfix: we did not pass the -1 fd to mmap(), which resulted in a failure at least on FreeBSD. we also print out the error message when mmap() fails.
refactor: skipped all the test cases for the Thompson JIT compiler on unsupported architectures like i386.
updated docs to reflect recent changes.
checked in benchmark tools for sregex, re1, and pcre.
use -O3 to compile sregex by default.
use clock_gettime() instead of clock() in the benchmarking programs to get much better time resolution.
bench: use bigger data to reduce timing error.
checked in a patch file for experimenting replacing the BTS instruction with TEST + OR instructions when lower 32 bits are involved only. this patch makes things 2.gitignore+ slower on my Core i7-3920XM CPU.
updated .gitignore a bit.
optimize: thompson JIT: replaced the "inc reg" instruction with "add reg, 1", which gives 6.5% overall speedup for simple regexes on Core i7.
bench: updated the default values for the PCRE_LIB and PCRE_INC vars in Makefile.
bench: fixed program name in the usage output of the "pcre" program.
bench: explicitly include stdlib.h in our C programs because they make use of exit().
bugfix: removed duplicate definitions for sre_int_t and sre_uint_t in sre_core.h.
bench: free memory actively.
bench: added a benchmarking program for the re2 library.
bench: re2: no longer print out the user regex.
checked in 3 patches for 3 optimization attempts in the Thompson JIT compiler.