[src] Optimized Parrot_byte_index(), which was surprisingly expensive.  It's a little bit tricky because C strings can't have embedded NULL characters, so the naive use of the standard library's index() doesn't always work.  However, it's a good place to start as it tends to run much faster than the inchworm code here.
[src] Optimized Parrot_byte_index(), which was surprisingly expensive.  It's a
little bit tricky because C strings can't have embedded NULL characters, so the
naive use of the standard library's index() doesn't always work.  However, it's
a good place to start as it tends to run much faster than the inchworm code
here.

Another optimization is never paying the price of calling memcmp() if it's
obvious that it will fail.

There are larger algorithmic optimizations to make calling this code less
expensive (by calling it less frequently), but this was a low-hanging
optimization.  Amortized over the data of PGE's regexp tests, this function
runs about three times faster than the previous version.

git-svn-id: 6e74a02f85675cec270f5d931b0f6998666294a3@21669 d31e2699-5ff4-0310-a27c-f18f2fbe73fe

tewk/parrot-select,youprofit/parrot,tewk/parrot-select,tewk/parrot-select,fernandobrito/parrot,FROGGS/parrot,parrot/parrot,fernandobrito/parrot,tkob/parrot,FROGGS/parrot,FROGGS/parrot,parrot/parrot,tewk/parrot-select,youprofit/parrot,gagern/parrot,parrot/parrot,fernandobrito/parrot,fernandobrito/parrot,gagern/parrot,gitster/parrot,tkob/parrot,gitster/parrot,youprofit/parrot,gagern/parrot,FROGGS/parrot,FROGGS/parrot,fernandobrito/parrot,youprofit/parrot,parrot/parrot,FROGGS/parrot,gagern/parrot,parrot/parrot,tkob/parrot,tewk/parrot-select,youprofit/parrot,youprofit/parrot,gagern/parrot,gagern/parrot,gagern/parrot,tkob/parrot,youprofit/parrot,tewk/parrot-select,tkob/parrot,fernandobrito/parrot,gitster/parrot,gitster/parrot,gitster/parrot,fernandobrito/parrot,tkob/parrot,tkob/parrot,gitster/parrot,tewk/parrot-select,youprofit/parrot,FROGGS/parrot,gitster/parrot,FROGGS/parrot,tkob/parrot