ladybird/Userland/Libraries/LibJS/Bytecode
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
..
Pass LibJS: Add an EliminateLoads pass to Bytecode 2022-12-03 15:25:05 +00:00
ASTCodegen.cpp LibJS: Perform received abrupt generator completions in the generator 2022-11-26 12:55:59 +01:00
BasicBlock.cpp AK+LibGfx+LibJS: Pass -1 as the file descriptor to anonymous mmap 2022-07-19 12:39:24 +02:00
BasicBlock.h LibJS: Remeber which instruction terminated a block 2022-12-03 17:07:30 +03:30
CodeGenerationError.h LibJS: Make ASTNode::generate_bytecode() fallible 2022-02-13 14:41:33 +00:00
Executable.cpp LibJS: Add a separate "identifier table" to bytecode executables 2021-10-24 17:18:07 +02:00
Executable.h LibJS/Bytecode: Determine strict mode on an executable basis 2022-07-18 09:00:21 +01:00
Generator.cpp LibJS: Perform received abrupt generator completions in the generator 2022-11-26 12:55:59 +01:00
Generator.h LibJS: Remeber which instruction terminated a block 2022-12-03 17:07:30 +03:30
IdentifierTable.cpp LibJS: Add a separate "identifier table" to bytecode executables 2021-10-24 17:18:07 +02:00
IdentifierTable.h AK+Everywhere: Replace DistinctNumeric bool parameters with named ones 2022-11-11 17:50:53 +03:30
Instruction.cpp LibJS: Move Instruction::length() to the Op.h header 2021-06-09 09:24:32 +02:00
Instruction.h LibJS: Add a way to replace references to registers in Bytecode 2022-12-03 15:25:05 +00:00
Interpreter.cpp LibJS: Add an EliminateLoads pass to Bytecode 2022-12-03 15:25:05 +00:00
Interpreter.h LibJS: Add a debug_position helper to the Bytecode Interpreter 2022-12-03 17:07:30 +03:30
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 a way to replace references to registers in Bytecode 2022-12-03 15:25:05 +00:00
Op.h LibJS: Expose some internals of Instructions 2022-12-03 15:25:05 +00:00
PassManager.h LibJS: Add an EliminateLoads pass to Bytecode 2022-12-03 15:25:05 +00:00
Register.h LibJS: Make Register comparable 2022-12-03 15:25:05 +00:00
StringTable.cpp LibJS: Use String and move semantics in Bytecode::StringTable 2021-10-24 17:18:07 +02:00
StringTable.h AK+Everywhere: Replace DistinctNumeric bool parameters with named ones 2022-11-11 17:50:53 +03:30