1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-19 00:45:08 +00:00

LibJS/JIT: Don't keep trying to JIT unsupported bytecode executables

We now only try jitting each Bytecode::Executable once, and then cache
the resulting NativeExecutable.
This commit is contained in:
Andreas Kling 2023-10-20 12:21:30 +02:00
parent 6a6ef6670c
commit 310bcd4717
5 changed files with 21 additions and 3 deletions

View file

@ -7,6 +7,7 @@
#include <LibJS/Bytecode/BasicBlock.h>
#include <LibJS/Bytecode/Executable.h>
#include <LibJS/Bytecode/RegexTable.h>
#include <LibJS/JIT/Compiler.h>
#include <LibJS/SourceCode.h>
namespace JS::Bytecode {
@ -52,4 +53,13 @@ void Executable::dump() const
}
}
JIT::NativeExecutable const* Executable::get_or_create_native_executable()
{
if (!m_did_try_jitting) {
m_did_try_jitting = true;
m_native_executable = JIT::Compiler::compile(*this);
}
return m_native_executable;
}
}