-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[JSC] Make CachedCall further faster
https://bugs.webkit.org/show_bug.cgi?id=264726 rdar://118320685 Reviewed by Michael Saboff. 1. We should not do vm.disallowVMEntryCount for every CachedCall calls, which is really slow. We should do it once. This patch moves vm.disallowVMEntryCount check to the same place to VMEntryScope. 2. Extract stack overflow check as _llint_throw_stack_overflow_error_from_vm_entry and jump to this label. 3. Move some of hot VM fields to the consolidated place. 4. Use paired load / store for VM frame initializations. cpp-to-js-cached-call 21.1540+-0.0364 ^ 15.0915+-0.0090 ^ definitely 1.4017x faster * Source/JavaScriptCore/interpreter/CachedCall.h: (JSC::CachedCall::CachedCall): * Source/JavaScriptCore/interpreter/CallFrame.h: (JSC::CallFrame::noCaller): * Source/JavaScriptCore/interpreter/Interpreter.cpp: (JSC::Interpreter::checkVMEntryPermission): (JSC::Interpreter::executeProgram): (JSC::Interpreter::executeCallImpl): (JSC::Interpreter::executeConstruct): (JSC::Interpreter::executeEval): (JSC::Interpreter::executeModuleProgram): * Source/JavaScriptCore/interpreter/Interpreter.h: * Source/JavaScriptCore/llint/LLIntSlowPaths.cpp: (JSC::LLInt::llint_check_vm_entry_permission): * Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm: * Source/JavaScriptCore/llint/LowLevelInterpreter64.asm: * Source/JavaScriptCore/runtime/VM.cpp: (JSC::VM::VM): * Source/JavaScriptCore/runtime/VM.h: Canonical link: https://commits.webkit.org/270649@main
- Loading branch information
1 parent
893f4b2
commit 0125fc7
Showing
9 changed files
with
107 additions
and
85 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.