ladybird/Libraries/LibRegex
Ali Mohammad Pur 09eb28ee1d LibRegex: Better estimate the cost of laying out alts as a chain
Previously we were counting the total number of *nodes* in the tree for
the chain cost, which greatly underestimated its cost when large
bytecode entries were present,
This commit switches to estimating it using the total bytecode *size*,
which is a closer value to the true cost than the tree node count.

This corresponds to a ~4x perf improvement on /<script|<style|<link/ in
speedometer.
2025-04-23 22:57:49 +02:00
..
CMakeLists.txt
Forward.h
Regex.h
RegexByteCode.cpp LibRegex: Flatten capture group list in MatchState 2025-04-18 17:09:27 +02:00
RegexByteCode.h LibRegex: Make Match::capture_group_name an index into the string table 2025-04-14 17:40:13 +02:00
RegexBytecodeStreamOptimizer.h
RegexDebug.h LibRegex: Flatten capture group list in MatchState 2025-04-18 17:09:27 +02:00
RegexDefs.h LibRegex: Flatten capture group list in MatchState 2025-04-18 17:09:27 +02:00
RegexError.h
RegexLexer.cpp LibRegex: Clean up #include directives 2024-11-21 14:08:33 +01:00
RegexLexer.h
RegexMatch.h AK+Everywhere: Recognise that surrogates in utf16 aren't all that common 2025-04-23 07:56:02 -06:00
RegexMatcher.cpp LibRegex: Avoid hashing the state hashes again 2025-04-18 17:09:27 +02:00
RegexMatcher.h LibRegex: Pull out the first compare to avoid unnecessary execution 2025-04-18 17:09:27 +02:00
RegexOptimizer.cpp LibRegex: Better estimate the cost of laying out alts as a chain 2025-04-23 22:57:49 +02:00
RegexOptions.h LibRegex: Flatten capture group list in MatchState 2025-04-18 17:09:27 +02:00
RegexParser.cpp LibRegex: Flatten capture group list in MatchState 2025-04-18 17:09:27 +02:00
RegexParser.h LibRegex: Pull out the first compare to avoid unnecessary execution 2025-04-18 17:09:27 +02:00