1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-28 22:15:07 +00:00
serenity/Userland/Libraries/LibJS/Bytecode/Pass
Hendiadyoin1 eb50969781 LibJS: Add an EliminateLoads pass to Bytecode
This pass tries to eliminate repeated lookups of variables by name, by
remembering where these where last loaded to.

For now the lookup cache needs to be fully cleared with each call or
property access, because we do not have a way to check if these have any
side effects on the currently visible scopes.

Note that property accesses can cause getters/setters to be called, so
these are treated as calls in all cases.
2022-12-03 15:25:05 +00:00
..
DumpCFG.cpp LibJS: Remove unused header includes 2021-08-01 08:10:16 +02:00
GenerateCFG.cpp LibJS: Handle FinishUnwind in GenerateCFG 2022-12-03 17:07:30 +03:30
LoadElimination.cpp LibJS: Add an EliminateLoads pass to Bytecode 2022-12-03 15:25:05 +00:00
MergeBlocks.cpp LibJS: Don't try to merge blocks not ending in Jumps 2022-12-03 17:07:30 +03:30
PlaceBlocks.cpp LibJS: Avoid unnecessary copies in PlaceBlocks codegen pass 2022-01-01 15:40:39 +01:00
UnifySameBlocks.cpp LibJS: Don't mark blocks for unification multiple times 2022-12-03 17:07:30 +03:30