ladybird/Userland/Libraries/LibJS/Bytecode
Aliaksandr Kalenik 3661d674ae LibJS: Add optimized GetGlobal instruction to access global variables
Using a special instruction to access global variables allows skipping
the environment chain traversal for them and going directly to the
module/global environment. Currently, this instruction only caches the
offset for bindings that belong to the global object environment.
However, there is also an opportunity to cache the offset in the global
declarative record.

This change results in a 57% increase in speed for
imaging-gaussian-blur.js in Kraken.
2023-07-12 16:03:16 +02:00
..
Pass LibJS/Bytecode: Generate bytecode for deleting super properties 2023-07-07 18:11:51 +02:00
ASTCodegen.cpp LibJS: Add optimized GetGlobal instruction to access global variables 2023-07-12 16:03:16 +02:00
BasicBlock.cpp Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
BasicBlock.h LibJS/Bytecode: Remove unnecessary variable environment stack 2023-07-02 18:30:02 +02:00
CodeGenerationError.cpp LibJS: Add to_string definitions to CodeGenerationError and ParserError 2023-02-17 09:14:23 -05:00
CodeGenerationError.h LibJS: Remove unused CodeGenerationError::to_deprecated_string 2023-02-17 09:14:23 -05:00
Executable.cpp Everywhere: Stop using NonnullOwnPtrVector 2023-03-06 23:46:35 +01:00
Executable.h LibJS: Add optimized GetGlobal instruction to access global variables 2023-07-12 16:03:16 +02:00
Generator.cpp LibJS: Add optimized GetGlobal instruction to access global variables 2023-07-12 16:03:16 +02:00
Generator.h LibJS: Add optimized GetGlobal instruction to access global variables 2023-07-12 16:03:16 +02:00
IdentifierTable.cpp AK+Everywhere: Rename FlyString to DeprecatedFlyString 2023-01-09 23:00:24 +00:00
IdentifierTable.h AK+Everywhere: Rename FlyString to DeprecatedFlyString 2023-01-09 23:00:24 +00:00
Instruction.cpp LibJS: Move Instruction::length() to the Op.h header 2021-06-09 09:24:32 +02:00
Instruction.h LibJS: Add optimized GetGlobal instruction to access global variables 2023-07-12 16:03:16 +02:00
Interpreter.cpp LibJS/Bytecode: Cache object own property accesses 2023-07-09 12:54:06 +02:00
Interpreter.h LibJS/Bytecode: Cache object own property accesses 2023-07-09 12:54:06 +02:00
Label.h Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
Op.cpp LibJS: Add optimized GetGlobal instruction to access global variables 2023-07-12 16:03:16 +02:00
Op.h LibJS: Add optimized GetGlobal instruction to access global variables 2023-07-12 16:03:16 +02:00
PassManager.h AK: Rename Time to Duration 2023-05-24 23:18:07 +02:00
Register.h LibJS: Make Register comparable 2022-12-03 15:25:05 +00:00
StringTable.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
StringTable.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00