summaryrefslogtreecommitdiff
path: root/l1_char_class_tab.h
diff options
context:
space:
mode:
authorKarl Williamson <public@khwilliamson.com>2012-10-11 12:15:53 -0600
committerKarl Williamson <public@khwilliamson.com>2012-10-11 20:37:50 -0600
commit3465e1f03c6c748e8f8a6bf8bfdfaf1fc58a4810 (patch)
treec096c1b4462c2c70501f6cf54569be38c0cf0997 /l1_char_class_tab.h
parent5e4a1da18f8fd71f2e5f0b98b0d41e3da257281a (diff)
downloadperl-3465e1f03c6c748e8f8a6bf8bfdfaf1fc58a4810.tar.gz
regcomp.c: Optimize EXACTFish nodes without folds to EXACT
Often, case folding will be applied to the entire regular expression (such as by using "/i"), but there will be components in it that are the same, folded or not. These components could be represented as EXACT nodes with no loss of information. The regex optimizer is then able to apply more optimizations to them than it could otherwise, and pattern matching will execute faster. This commit turns any EXACTFish node (except those under locale rules, whose folding rules are not known until runtime)) that contains entirely unfoldable characters into the equivalent EXACT node. This optimization brings up the idea of possibly splitting an EXACTFish node that contains a sufficiently long contiguous string of non-folding characters into the portions that have folding and the portions that don't. That might or might not be beneficial; I'm not undertaking the experiments to check that out.
Diffstat (limited to 'l1_char_class_tab.h')
0 files changed, 0 insertions, 0 deletions