mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-19 17:27:51 +03: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:
parent
7bdf0be667
commit
2758d99bbc
Notes:
sideshowbarker
2024-07-18 03:20:40 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/2758d99bbcd
@ -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());
|
||||
|
Loading…
Reference in New Issue
Block a user