regex direct support for sse4 intrinsics
bearophile
bearophileHUGS at lycos.com
Tue Mar 27 02:51:07 PDT 2012
Dmitry Olshansky:
> Speaking more of run-time version of regex, it is essentially running a
> VM that executes instructions that do various kinds of match-this,
> match-that. The VM dispatch code is quite slow, the optimal _threaded_
> code requires either doing it in _assembly_ or _computed_ goto in the
> language. The VM _dispatch_ takes up to 30% of time in the default matcher.
I have used computed gotos in GCC-C to implement some quite efficient finite state machines to be used in computational biology. I've seen 20%+ speedups compared to my alternative switch-based implementation. So I'd like computed gotos in D too.
Both GCC and LLVM back-ends support computed gotos (despite the asm produced by LLVM on them is not as good as GCC one). If people feel the desire to add compiler-specific computed gotos to D, they will risk adding them with a different syntax on each present and future compiler. Even if dmd doesn't support computed gotos, defining a standard syntax (like it was done for years for vector operations) is a way to avoid that balkanization, and it will help LDC and GDC developers add this feature to their compilers.
Bye,
bearophile
More information about the Digitalmars-d
mailing list