mirror of
https://github.com/RGBCube/serenity
synced 2026-01-21 21:01:00 +00:00
This patch adds a new "Peephole" pass for performing small, local
optimizations to bytecode.
We also introduce the first such optimization, fusing a sequence of
some comparison instruction FooCompare followed by a JumpIf into a
new set of JumpFooCompare instructions.
This gives a ~50% speed-up on the following microbenchmark:
for (let i = 0; i < 10_000_000; ++i) {
}
But more traditional benchmarks see a pretty sizable speed-up as well,
for example 15% on Kraken/ai-astar.js and 16% on Kraken/audio-dft.js :^)
|
||
|---|---|---|
| .. | ||
| DumpCFG.cpp | ||
| GenerateCFG.cpp | ||
| MergeBlocks.cpp | ||
| Peephole.cpp | ||
| PlaceBlocks.cpp | ||
| UnifySameBlocks.cpp | ||