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