mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-02-05 15:27:04 +00:00
LibRegex: Flatten bytecode before performing optimizations
This avoids doing DisjointChunks traversal for every bytecode access, significantly reducing startup time for large regular expressions.
This commit is contained in:
@@ -17,6 +17,8 @@ using Detail::Block;
|
||||
template<typename Parser>
|
||||
void Regex<Parser>::run_optimization_passes()
|
||||
{
|
||||
parser_result.bytecode.flatten();
|
||||
|
||||
// Rewrite fork loops as atomic groups
|
||||
// e.g. a*b -> (ATOMIC a*)b
|
||||
attempt_rewrite_loops_as_atomic_groups(split_basic_blocks());
|
||||
|
||||
Reference in New Issue
Block a user