2021-10-19 03:55:00 +00:00
|
|
|
/*
|
|
|
|
* Copyright (c) 2021 Huawei Device Co., Ltd.
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
* you may not use this file except in compliance with the License.
|
|
|
|
* You may obtain a copy of the License at
|
|
|
|
*
|
|
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
*
|
|
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
* See the License for the specific language governing permissions and
|
|
|
|
* limitations under the License.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef ECMASCRIPT_JS_RUNTIME_OPTIONS_H_
|
|
|
|
#define ECMASCRIPT_JS_RUNTIME_OPTIONS_H_
|
|
|
|
|
2022-09-20 08:00:16 +00:00
|
|
|
#include <optional>
|
|
|
|
#include <string>
|
|
|
|
#include <string_view>
|
|
|
|
#include <vector>
|
|
|
|
|
2022-08-17 08:53:35 +00:00
|
|
|
#include "ecmascript/compiler/bc_call_signature.h"
|
|
|
|
#include "ecmascript/mem/mem_common.h"
|
|
|
|
|
2021-10-19 03:55:00 +00:00
|
|
|
// namespace panda {
|
|
|
|
namespace panda::ecmascript {
|
2022-09-20 08:00:16 +00:00
|
|
|
using arg_list_t = std::vector<std::string>;
|
2022-01-07 09:36:04 +00:00
|
|
|
enum ArkProperties {
|
2024-07-04 08:02:26 +00:00
|
|
|
DEFAULT = -1, // default value 000'0000'0001'0000'0101'1100 -> 0x105c
|
2022-01-07 09:36:04 +00:00
|
|
|
OPTIONAL_LOG = 1,
|
|
|
|
GC_STATS_PRINT = 1 << 1,
|
2024-07-04 08:02:26 +00:00
|
|
|
PARALLEL_GC = 1 << 2, // default enable
|
|
|
|
CONCURRENT_MARK = 1 << 3, // default enable
|
|
|
|
CONCURRENT_SWEEP = 1 << 4, // default enable
|
2022-01-26 02:08:18 +00:00
|
|
|
THREAD_CHECK = 1 << 5,
|
2024-07-04 08:02:26 +00:00
|
|
|
ENABLE_ARKTOOLS = 1 << 6, // default enable
|
2022-06-07 08:44:17 +00:00
|
|
|
ENABLE_SNAPSHOT_SERIALIZE = 1 << 7,
|
|
|
|
ENABLE_SNAPSHOT_DESERIALIZE = 1 << 8,
|
2022-09-23 02:18:02 +00:00
|
|
|
EXCEPTION_BACKTRACE = 1 << 9,
|
2023-01-17 13:12:48 +00:00
|
|
|
GLOBAL_OBJECT_LEAK_CHECK = 1 << 10,
|
|
|
|
GLOBAL_PRIMITIVE_LEAK_CHECK = 1 << 11,
|
2024-07-04 08:02:26 +00:00
|
|
|
ENABLE_IDLE_GC = 1 << 12, // default enable
|
2023-06-14 02:49:31 +00:00
|
|
|
CPU_PROFILER_COLD_START_MAIN_THREAD = 1 << 13,
|
2023-01-31 07:38:31 +00:00
|
|
|
ENABLE_CPU_PROFILER_VM_TAG = 1 << 14,
|
2023-04-23 01:52:14 +00:00
|
|
|
ENABLE_GC_TRACER = 1 << 15,
|
2023-06-14 02:49:31 +00:00
|
|
|
CPU_PROFILER_COLD_START_WORKER_THREAD = 1 << 16,
|
|
|
|
CPU_PROFILER_ANY_TIME_MAIN_THREAD = 1 << 17,
|
2024-02-08 05:12:59 +00:00
|
|
|
CPU_PROFILER_ANY_TIME_WORKER_THREAD = 1 << 18,
|
2024-04-15 07:46:14 +00:00
|
|
|
ENABLE_HEAP_VERIFY = 1 << 19,
|
2024-05-06 10:09:35 +00:00
|
|
|
ENABLE_MICROJOB_TRACE = 1 << 20,
|
2024-04-02 07:34:31 +00:00
|
|
|
ENABLE_INIT_OLD_SOCKET_SESSION = 1 << 21,
|
2024-05-20 13:39:57 +00:00
|
|
|
// Use DISABLE to adapt to the exsiting ArkProperties in testing scripts.
|
|
|
|
DISABLE_SHARED_CONCURRENT_MARK = 1 << 22,
|
2024-05-28 08:57:13 +00:00
|
|
|
ENABLE_ESM_TRACE = 1 << 24,
|
2024-05-07 07:13:23 +00:00
|
|
|
ENABLE_MODULE_LOG = 1 << 25
|
2022-01-07 09:36:04 +00:00
|
|
|
};
|
|
|
|
|
2022-03-10 09:34:02 +00:00
|
|
|
// asm interpreter control parsed option
|
|
|
|
struct AsmInterParsedOption {
|
|
|
|
int handleStart {-1};
|
|
|
|
int handleEnd {-1};
|
|
|
|
bool enableAsm {false};
|
|
|
|
};
|
|
|
|
|
2022-11-22 10:54:39 +00:00
|
|
|
extern const std::string PUBLIC_API COMMON_HELP_HEAD_MSG;
|
|
|
|
extern const std::string PUBLIC_API STUB_HELP_HEAD_MSG;
|
2023-02-22 09:36:20 +00:00
|
|
|
extern const std::string PUBLIC_API COMPILER_HELP_HEAD_MSG;
|
2022-11-22 10:54:39 +00:00
|
|
|
extern const std::string PUBLIC_API HELP_OPTION_MSG;
|
2022-09-20 08:00:16 +00:00
|
|
|
|
|
|
|
enum CommandValues {
|
|
|
|
OPTION_DEFAULT,
|
2024-03-15 09:19:20 +00:00
|
|
|
OPTION_HELP,
|
2022-09-20 08:00:16 +00:00
|
|
|
OPTION_ENABLE_ARK_TOOLS,
|
|
|
|
OPTION_STUB_FILE,
|
|
|
|
OPTION_ENABLE_FORCE_GC,
|
|
|
|
OPTION_FORCE_FULL_GC,
|
2024-02-22 06:54:53 +00:00
|
|
|
OPTION_ENABLE_FORCE_SHARED_GC_FREQUENCY,
|
2022-09-20 08:00:16 +00:00
|
|
|
OPTION_ARK_PROPERTIES,
|
2023-01-29 03:40:13 +00:00
|
|
|
OPTION_ARK_BUNDLENAME,
|
2022-09-20 08:00:16 +00:00
|
|
|
OPTION_GC_THREADNUM,
|
2023-04-21 06:11:22 +00:00
|
|
|
OPTION_GC_LONG_PAUSED_TIME,
|
2022-09-20 08:00:16 +00:00
|
|
|
OPTION_AOT_FILE,
|
2023-04-07 08:51:43 +00:00
|
|
|
OPTION_COMPILER_TARGET_TRIPLE,
|
2022-09-20 08:00:16 +00:00
|
|
|
OPTION_ASM_OPT_LEVEL,
|
|
|
|
OPTION_RELOCATION_MODE,
|
2023-04-21 06:11:22 +00:00
|
|
|
OPTION_MAX_UNMOVABLE_SPACE,
|
2022-09-20 08:00:16 +00:00
|
|
|
OPTION_ENABLE_ASM_INTERPRETER,
|
2023-04-24 03:43:21 +00:00
|
|
|
OPTION_ENABLE_BUILTINS_LAZY,
|
2022-09-20 08:00:16 +00:00
|
|
|
OPTION_ASM_OPCODE_DISABLE_RANGE,
|
|
|
|
OPTION_SERIALIZER_BUFFER_SIZE_LIMIT,
|
|
|
|
OPTION_HEAP_SIZE_LIMIT,
|
|
|
|
OPTION_ENABLE_IC,
|
|
|
|
OPTION_ICU_DATA_PATH,
|
|
|
|
OPTION_STARTUP_TIME,
|
|
|
|
OPTION_COMPILER_LOG_OPT,
|
2022-09-22 08:01:36 +00:00
|
|
|
OPTION_COMPILER_LOG_METHODS,
|
2023-01-30 06:39:03 +00:00
|
|
|
OPTION_COMPILER_TYPE_THRESHOLD,
|
2022-09-20 08:00:16 +00:00
|
|
|
OPTION_ENABLE_RUNTIME_STAT,
|
2022-11-17 11:12:49 +00:00
|
|
|
OPTION_COMPILER_LOG_SNAPSHOT,
|
2022-11-10 09:17:49 +00:00
|
|
|
OPTION_COMPILER_LOG_TIME,
|
2023-04-21 06:11:22 +00:00
|
|
|
OPTION_ENABLE_WORKER,
|
2023-04-07 08:51:43 +00:00
|
|
|
OPTION_COMPILER_TRACE_BC,
|
|
|
|
OPTION_COMPILER_TRACE_DEOPT,
|
2023-05-10 13:22:15 +00:00
|
|
|
OPTION_COMPILER_TRACE_INLINE,
|
|
|
|
OPTION_COMPILER_MAX_INLINE_BYTECODES,
|
2023-04-07 08:51:43 +00:00
|
|
|
OPTION_COMPILER_DEOPT_THRESHOLD,
|
|
|
|
OPTION_COMPILER_STRESS_DEOPT,
|
|
|
|
OPTION_COMPILER_OPT_CODE_PROFILER,
|
2024-02-20 09:01:56 +00:00
|
|
|
OPTION_COMPILER_OPT_BC_RANGE,
|
2022-09-20 08:00:16 +00:00
|
|
|
OPTION_LOG_LEVEL,
|
|
|
|
OPTION_LOG_DEBUG,
|
|
|
|
OPTION_LOG_INFO,
|
|
|
|
OPTION_LOG_WARNING,
|
|
|
|
OPTION_LOG_ERROR,
|
|
|
|
OPTION_LOG_FATAL,
|
|
|
|
OPTION_LOG_COMPONENTS,
|
2023-04-07 08:51:43 +00:00
|
|
|
OPTION_COMPILER_OPT_MAX_METHOD,
|
2023-05-05 06:53:42 +00:00
|
|
|
OPTION_COMPILER_MODULE_METHODS,
|
2022-09-20 08:00:16 +00:00
|
|
|
OPTION_ENTRY_POINT,
|
|
|
|
OPTION_MERGE_ABC,
|
2023-12-19 12:41:49 +00:00
|
|
|
OPTION_ENABLE_CONTEXT,
|
2023-04-07 08:51:43 +00:00
|
|
|
OPTION_COMPILER_OPT_TYPE_LOWERING,
|
|
|
|
OPTION_COMPILER_OPT_EARLY_ELIMINATION,
|
|
|
|
OPTION_COMPILER_OPT_LATER_ELIMINATION,
|
2024-01-11 12:25:47 +00:00
|
|
|
OPTION_COMPILER_OPT_STRING,
|
2023-04-07 08:51:43 +00:00
|
|
|
OPTION_COMPILER_OPT_VALUE_NUMBERING,
|
|
|
|
OPTION_COMPILER_OPT_INLINING,
|
|
|
|
OPTION_COMPILER_OPT_PGOTYPE,
|
2023-07-12 10:42:42 +00:00
|
|
|
OPTION_COMPILER_OPT_TRACK_FIELD,
|
2023-04-07 08:51:43 +00:00
|
|
|
OPTION_COMPILER_PGO_PROFILER_PATH,
|
|
|
|
OPTION_COMPILER_PGO_HOTNESS_THRESHOLD,
|
2023-09-22 09:16:17 +00:00
|
|
|
OPTION_COMPILER_PGO_SAVE_MIN_INTERVAL,
|
2022-10-17 09:02:45 +00:00
|
|
|
OPTION_ENABLE_PGO_PROFILER,
|
2023-04-07 08:51:43 +00:00
|
|
|
OPTION_PRINT_EXECUTE_TIME,
|
2024-04-09 23:24:36 +00:00
|
|
|
OPTION_SPLIT_ONE,
|
2024-05-12 11:02:47 +00:00
|
|
|
OPTION_ENABLE_EDEN_GC,
|
2024-04-01 03:40:18 +00:00
|
|
|
OPTION_COMPILER_DEVICE_STATE,
|
2023-04-07 08:51:43 +00:00
|
|
|
OPTION_COMPILER_VERIFY_VTABLE,
|
|
|
|
OPTION_COMPILER_SELECT_METHODS,
|
2023-05-24 09:39:27 +00:00
|
|
|
OPTION_COMPILER_SKIP_METHODS,
|
|
|
|
OPTION_TARGET_COMPILER_MODE,
|
|
|
|
OPTION_HAP_PATH,
|
|
|
|
OPTION_HAP_ABC_OFFSET,
|
2023-07-02 07:54:40 +00:00
|
|
|
OPTION_HAP_ABC_SIZE,
|
2023-07-07 03:54:42 +00:00
|
|
|
OPTION_COMPILER_NOCHECK,
|
2024-06-21 02:20:15 +00:00
|
|
|
OPTION_COMPILER_PIPELINE_HOST_AOT,
|
2023-07-10 03:26:49 +00:00
|
|
|
OPTION_FAST_AOT_COMPILE_MODE,
|
|
|
|
OPTION_COMPILER_OPT_LOOP_PEELING,
|
2023-08-28 06:11:40 +00:00
|
|
|
OPTION_COMPILER_OPT_ON_HEAP_CHECK,
|
2023-09-05 07:09:21 +00:00
|
|
|
OPTION_COMPILER_PKG_INFO,
|
|
|
|
OPTION_COMPILER_EXTERNAL_PKG_INFO,
|
2023-09-27 06:36:04 +00:00
|
|
|
OPTION_COMPILER_ENABLE_EXTERNAL_PKG,
|
2024-03-28 03:13:40 +00:00
|
|
|
OPTION_COMPILER_FRAMEWORK_ABC_PATH,
|
2023-08-03 07:22:51 +00:00
|
|
|
OPTION_COMPILER_OPT_ARRAY_BOUNDS_CHECK_ELIMINATION,
|
2023-09-14 09:17:53 +00:00
|
|
|
OPTION_COMPILER_OPT_LOOP_INVARIANT_CODE_MOTION,
|
2023-09-13 07:02:07 +00:00
|
|
|
OPTION_COMPILER_OPT_CONSTANT_FOLDING,
|
2023-10-23 01:10:20 +00:00
|
|
|
OPTION_COMPILER_ENABLE_LEXENV_SPECIALIZATION,
|
2023-10-24 12:36:58 +00:00
|
|
|
OPTION_COMPILER_TRACE_INSTRUCTION_COMBINE,
|
|
|
|
OPTION_COMPILER_TRACE_VALUE_NUMBERING,
|
|
|
|
OPTION_COMPILER_OPT_INSTRUCTIONE_COMBINE,
|
|
|
|
OPTION_COMPILER_OPT_NEW_VALUE_NUMBERING,
|
2023-11-09 09:25:34 +00:00
|
|
|
OPTION_COMPILER_ENABLE_NATIVE_INLINE,
|
2023-11-16 08:11:50 +00:00
|
|
|
OPTION_COMPILER_ENABLE_LOWERING_BUILTIN,
|
2023-11-27 12:16:00 +00:00
|
|
|
OPTION_COMPILER_ENABLE_LITECG,
|
2023-12-09 01:13:27 +00:00
|
|
|
OPTION_COMPILER_ENABLE_JIT,
|
2024-03-19 06:57:29 +00:00
|
|
|
OPTION_COMPILER_ENABLE_OSR,
|
2023-12-09 08:14:08 +00:00
|
|
|
OPTION_COMPILER_JIT_HOTNESS_THRESHOLD,
|
2024-04-22 07:38:21 +00:00
|
|
|
OPTION_COMPILER_JIT_CALL_THRESHOLD,
|
2024-03-19 06:57:29 +00:00
|
|
|
OPTION_COMPILER_OSR_HOTNESS_THRESHOLD,
|
2023-12-09 08:14:08 +00:00
|
|
|
OPTION_COMPILER_FORCE_JIT_COMPILE_MAIN,
|
2023-12-09 01:13:27 +00:00
|
|
|
OPTION_COMPILER_TRACE_JIT,
|
2024-04-15 06:04:51 +00:00
|
|
|
OPTION_COMPILER_ENABLE_JIT_PGO,
|
|
|
|
OPTION_COMPILER_ENABLE_AOT_PGO,
|
2024-05-15 07:54:15 +00:00
|
|
|
OPTION_COMPILER_ENABLE_FRAMEWORK_AOT,
|
2024-04-15 06:04:51 +00:00
|
|
|
OPTION_COMPILER_ENABLE_PROPFILE_DUMP,
|
2023-12-18 07:57:47 +00:00
|
|
|
OPTION_ENABLE_ELEMENTSKIND,
|
2024-01-19 08:38:20 +00:00
|
|
|
OPTION_COMPILER_TYPED_OP_PROFILER,
|
2024-01-29 07:34:49 +00:00
|
|
|
OPTION_COMPILER_OPT_BRANCH_PROFILING,
|
2024-02-07 02:14:45 +00:00
|
|
|
OPTION_TEST_ASSERT,
|
2024-02-08 08:49:59 +00:00
|
|
|
OPTION_COMPILER_METHODS_RANGE,
|
|
|
|
OPTION_COMPILER_CODEGEN_OPT,
|
2024-02-20 09:01:56 +00:00
|
|
|
OPTION_COMPILER_OPT_BC_RANGE_HELP,
|
2024-04-08 02:47:41 +00:00
|
|
|
OPTION_COMPILER_MEMORY_ANALYSIS,
|
2024-04-13 15:49:46 +00:00
|
|
|
OPTION_COMPILER_CHECK_PGO_VERSION,
|
2024-02-26 09:00:01 +00:00
|
|
|
OPTION_COMPILER_OPT_ESCAPE_ANALYSIS,
|
|
|
|
OPTION_COMPILER_TRACE_ESCAPE_ANALYSIS,
|
2024-07-09 22:52:07 +00:00
|
|
|
OPTION_ENABLE_JITFORT,
|
|
|
|
OPTION_CODESIGN_DISABLE,
|
|
|
|
OPTION_ENABLE_ASYNC_COPYTOFORT,
|
2024-03-15 09:19:20 +00:00
|
|
|
OPTION_LAST,
|
2024-03-15 03:39:24 +00:00
|
|
|
OPTION_COMPILER_OPT_INDUCTION_VARIABLE,
|
|
|
|
OPTION_COMPILER_TRACE_INDUCTION_VARIABLE,
|
enable baseline compiler
add baseline builtins
Change-Id: Ib8d7c392c62e21eab19b17e45c0fafb499cbbed9
support running baseline compiler by option --compiler-force-baseline-compile-main=true
Change-Id: I7c7337faf9fad39ccffb2de28d46403e2f6cb22b
baseline jit part3
Change-Id: I36e8dd6a6fa6fffb738029a8620bbcd01df1e017
baseline part4
Change-Id: Ib45bcf7255a85aa48f864a6021adf819927e6a13
baseline part5 move baseline into compiler folder
Change-Id: Ia8781c95ae00c4f300e7267a6da0078b5d04e4c8
!185 support BaselinePrologue
* support BaselinePrologue part3
* support BaselinePrologue part2
* support BaselinePrologue
!187 [BaselineJit] support load baseline builtins
* [BaselineJit]support load baseline builtins
!186[BaselineJIT] workaround for baselinejit support install code
* install code part3
* install code part2
* baseline jit support intall code
!188 [BaselineJit] support CallBuiltin
* [BaselineJit] baseline support CallBuiltin
!189 [BaselineJIT]implement StackOffset class
* [BaselineJIT]implement StackOffset class
!190 [BaselineJIT]refactor BaselineAssembler and MacroAssembler
* [BaselineJIT]refactor BaselineAssembler and MacroAssembler
!191 [BaselineJIT] refactor class BaselineCompiler
* [BaselineJIT] refactor class BaselineCompiler
!192 [BaselineJIT] callbuiltin support new parameter type
new parameter type: int32_t,SpecialParameter,VirtualRegister
!193 [BaselineJIT]modify BaselineLoadObjByName function
* [BaselineJIT]modify BaselineLoadObjByName function
!194 [BaselineJIT] support new builtins
* [BaselineJIT] add BaselineTryLdGLobalByNameImm8ID16, BaselineStToGlobalRecordImm16ID16, BaselineLdaStrID16
!196 [BaselineJIT]bugfix for BaselinePrologue, align the rsp
* [BaselineJIT]bugfix for BaselinePrologue, align the rsp
!197 [BaselineJIT]bugfix for StackOffsetDescriptor
* [BaselineJIT]bugfix for StackOffsetDescriptor
!198 [BaselineJIT]workaround for helloworld testcase, helloworld can run successfully
* workaround for helloworld testcase, helloworld can run successfully
!200 [BaselineJIT]adapt profile collection
* [BaselineJIT]adapt profile collection
!201 [BaselineJIT]refactor baseline jit
* [BaselineJIT]refactor baseline jit
!203 [BaselineJIT]support trigger BaselineJITCompile and call baselinecode async
* [BaselineJIT]support trigger BaselineJITCompile and call baselinecode async
!202 [BaselineJIT]enable update hotness
* [BaselineJIT]enable update hotness
!205 [BaselineJIT]adapt JSCallDispatch interface
* [BaselineJIT]adapt JSCallDispatch interface
Change-Id: I4efce4346f985c7e074d7fc4bbfe3b081272e950
!195 [Baseline JIT] bytecode to builtin funs
* !206 enable bytecode builtins and call CHECK_PENDING_EXCEPTION
* [Baseline JIT] builtins:StobjbynameImm9Id16V8,StobjbynameImm16Id16V8,S…
* [Baseline JIT] builtins:CopyrestargsImm8,LdlexvarImm4Imm4,StlexvarImm4…
* [Baseline JIT] builtins: LdsuperbyvalueImm8V8,LdsuperbyvalueImm16V8,St…
* [Baseline JIT] builtins: DelobjpropV8,AsyncfunctionawaituncaughtV8,Cop…
* !204 enable bytecode builtins
* [Baseline JIT] builtins: DefineclasswithbufferImm8Id16Id16Imm16V8,Defi…
* [Baseline JIT] builtins: LdthisbynameImm8Id16,Definegettersetterbyval…
* [Baseline JIT] builtins: Callarg0Imm8,SupercallspreadImm8V8,ApplyImm8V…
* !199 enable bytecode builtin func
* [Baseline JIT] builtins: StrictnoteqImm8V8,StricteqImm8V8,Istrue,Isfal…
* [Baseline JIT] builtins: NegImm8,NotImm8,IncImm8,DecImm8,IsinImm8V8,In…
* [Baseline JIT] builtins: And2Imm8V8,Or2Imm8V8,Xor2Imm8V8,ExpImm8V8,Typ…
* [Baseline JIT] builtins:LessImm8V8,LesseqImm8V8,GreaterImm8V8,Greatere…
* [Baseline JIT] builtins:Add2Imm8V8,SUB2_IMM8_V8,MUL2_IMM8_V8,DIV2_IMM8…
* [Baseline JIT] builtins:CreateobjectwithbufferImm8Id16,Createobjectwit…
* [Baseline JIT]builtins:Createemptyobject,CreateemptyarrayImm8,Createem…
* [Baseline JIT] builtins:GetiteratorImm16,Asyncfunctionenter,Createasyn…
* [Baseline JIT] builtins:ldsymbol,ldglobal,Poplexenv,Getunmappedargs,Ge…
* [BaselineJIT] builtins: add base class
!209 handle opcode in baseline compiler
* handle opcode in baseline compiler
!210 [baseline jit]: add baseline stub call signature target kind info
* [baseline jit]: add baseline stub call signature target kind info
!212 [BaselineJIT]baseline builtin bugfix
* [BaselineJIT]baseline builtin bugfix
!207 [BaselineJIT]support BaselineBuiltinFrame
* [BaselineJIT]support BaselineBuiltinFrame
!214 [BaselineJIT]baseline builtin bugfix of using JSCallDispatch
* [BaselineJIT]baseline builtin bugfix JSCallDispatch
Change-Id: Id67b991df5dee753a38c284234d15b02f0d8a091
!215 [BaselineJIT]bugfix for StackOffsetDescriptor
* [BaselineJIT]bugfix for StackOffsetDescriptor
!216 [baseline jit]update bytecode builtins
* [baseline jit]update bytecode builtins
!213 [BaselineJIT]support BaselineReturn and BaselineReturnundefined
* [BaselineJIT]support BaselineReturn and BaselineReturnundefined
!218 [BaselineJIT]baseline builtin
* [BaselineJIT]baseline builtin:ldfunction,ldthis,asyncgeneratorresolvev…
!217 parse baseline-jit bytecode v1.0
* parse bytecode in baseline-jit
!220 [BaselineJIT]baseline refactor ParameterIndex
* [BaselineJIT]baseline refactor ParameterIndex
!223 [BaselineJIT]get function and method from stack, avoiding method is used after call
* [BaselineJIT]get function and method from stack, avoiding method is us…
!224 [BaselineJIT]bugfix for compiling x64.release
* [BaselineJIT]bugfix for compiling x64.release
!226 [BaselineJIT] adapt gc for BASELINE_BUILTIN_FRAME type
* [BaselineJIT]adapt gc for BASELINE_BUILTIN_FRAME type
!222 [BaselineJIT] parse baseline builtin args
* [BaselineJIT] parse baseline builtin args:part 2
* [BaselineJIT] parse baseline builtin args
!229 parse baseline-jit bytecode v2.0
* [BaselineJIT] parse bytecode v2.0
!230 [BaselineJIT] remove including undefined_function file
* [BaselineJIT] remove including undefined_function file
!228 handle byte opcode of jmp v2
* [baseline jit]handle opcode of jmp V2
[BaselineJIT]rebase bugfix
Change-Id: I078298849139317dfa89fb139979c1b7d938b344
!231 [BaselineJIT] fix bugs about reading bytecode
* [BaselineJIT] fix bugs about read bytecode
!232 [BaselineJIT] fix bug about processing arguments in stub
* [BaselineJIT] fix bug about processing argument in baseline-stubs
!233 handle int64_t type in CallBuiltin
* [baseline jit]handle int64_t type in CallBuiltin
!234 [BaselineJIT] fix bug for StToGlobalRecordImm16ID16
* [BaselineJIT] fix bug for StToGlobalRecordImm16ID16
!235 [BaselineJIT] fix bugs about args type
* [BaselineJIT] fix type of args that passing to builtins
!236 [BaselineJIT] do not pass constpool to builtins
* [BaselineJIT] do not passing constpool to builtin
Change-Id: I8c46d70527a3fedd841d28ac1908a02d4a66edeb
!237 [baselineJit]Bugfix for sp used in JSCallDispatch and incorretc type
* [baselineJit]Bugfix for sp used in JSCallDispatch and incorretc type
Change-Id: I3f42ecd06266a20b2b145cfe98bcbd97a2848bab
[BaselineJIT] dump_test bugfix
Change-Id: I97d21960ca98cd1a6fc9b1e81b647ff9d8d5d0c2
[BaselineJIT]codecheck fix
Change-Id: I93eb02e45b70f4a5bfee84fec0c8e2cdc765d348
code check bugfix part2
Change-Id: I8680dd2c098193705709691fa78e8e6f3ad8cd6c
bugfix for review
Change-Id: I49b28e109530b9f8b403ba22ba39948e02834021
[BaselineJIT]change file folder
Change-Id: I1f46110a804f17270badcff7cdeb2058ca164161
[BaselineJIT]bugfix for review part2
Change-Id: I190406652697f9b17ac6c84dd706262046dbb5f7
!238 [BaselineJIT] fix more than 6 args builtins
* [BaselineJIT] fix more than 6 args builtins
!239 [BaselineJIT] fix bug in parsing CALLTHISRANGE_IMM8_IMM8_V8
* [BaselineJIT] fix bug in parsing CALLTHISRANGE_IMM8_IMM8_V8
!240 [BaselineJIT] fix bug and add NewobjrangeImm8Imm8V8,NewobjrangeImm16Imm8V8
* [BaselineJIT] fix bug and add NewobjrangeImm8Imm8V8,NewobjrangeImm16Imm8V8
!241 [BaselineJIT] fix bug of ldnan, ldinfinity
* [BaselineJIT] fix bug of ldnan, ldinfinity
!242 [BaselineJIT] return JSCallDispatch result
* [BaselineJIT] return result of JSCallDispatch for baselinecode
!245 [BaselineJIT] fix builtins return value
* [BaselineJIT] fix builtins return value
!244 [BaselineJIT] save result to acc
* [BaselineJIT] save result to acc
!243 Bugfix for StlexvarImm4Imm4
* [baselineJit]Bugfix for StlexvarImm4Imm4
!246 [BaselineJIT] remove ldfunction
* [BaselineJIT] remove ldfunction
!248 [BaselineJIT] save result of DEFINECLASSWITHBUFFER_IMM8_ID16_ID16_IMM16_V8
* [BaselineJIT] fix return
!247 [baselineJit]Bugfix for Stlexvar and Ldlexvar
* [baselineJit]Bugfix for Stlexvar and Ldlexvar
!249 [BaselineJIT] Revert "!242[BaselineJIT] return JSCallDispatch result"
* Revert "!242 [BaselineJIT] return JSCallDispatch result"
!251 Bugfix for BaselineCreateobjectwithexcludedkeysImm8V8V8
* [baselineJit]Bugfix for BaselineCreateobjectwithexcludedkeysImm8V8V8
!252 [baselineJit]Bugfix for notException branch
* [baselineJit]Bugfix for notException branch
!250 [BaselineJIT] save result to acc in JSCallDispatch for baselinemethodcode
* [BaselineJIT] save result of JSCallDispatch to acc for baselinecode
!254 [BaselineJIT] fix type bug
* [BaselineJIT] fix type bug
!255 [BaselineJIT] fix bug of LDAI_IMM32
* [BaselineJIT] fix bug of LDAI_IMM32
!253 Bugfix for Poplexenv
* [baselineJit]Bugfix for Poplexenv
!256 [BaselineJIT] fix pc & refractor jscalldispatch for baseline-jit
* [BaselineJIT] fix pc of baseline-jit & refactor jscalldispatch for baseline-jit
!257 [BaselineJIT] replace indirectly jscalldispatch with jscalldispatchforbaseline
* [BaselineJIT] replace indirectly jscalldispatch with jscalldispatchforbaseline
!258 [BaselineJIT] fix using shl2 builtin bug
* [BaselineJIT] fix using shl2 builtin bug
!259 Bugfix and enable BaselineIstrue and BaselineIsFalse
* [baselineJit]Bugfix and enable BaselineIstrue and BaselineIsFalse
!260 [BaselineJIT] fix bug about passing FUNC parameter
* [BaselineJIT] fix bug about passing FUNC parameter
!261 [BaselineJIT] support passing parameters by stack and fix offset param bug
* [BaselineJIT] support passing parameters by stack and fix offset param bug
!263 [BaselineJIT] fix parameters bug of LdobjbyvalueImm16V8 & StobjbyvalueImm16V8V8
* [BaselineJIT] fix parameters bug of LdobjbyvalueImm16V8 & StobjbyvalueImm16V8V8
!262 Bugfix for jump offset
* [baselineJit]Bugfix for jump offset
!264 [BaselineJIT] fix intermediates v8 parameters bug
* [BaselineJIT] fix intermediates v8 parameters bug
Change-Id: I8bf4fdf7621770a1976925423de23693570365c9
!267 [BaselineJIT] fix bug of BaselineInstanceofImm8V8
* [BaselineJIT] fix bug of BaselineInstanceofImm8V8
!269 [BaselineJIT] support NEWOBJRANGE_IMM16_IMM8_V8 & fix calling DefineMethod runtimeStub
* [BaselineJIT] support NEWOBJRANGE_IMM16_IMM8_V8 & fix calling DefineMe…
!268 [BaselineJIT]support update hotness
* [BaselineJIT]enable update hotness part2
* [BaselineJIT]support update hotness
Change-Id: I24b02a9e015df7263b1e9d7210377add0bfc558c
CI bugfix
Change-Id: I2d5aef07a1f14b3c64585790cff99d64be0d6396
Signed-off-by: w00443755 <wangzhilei2@huawei.com>
2024-01-26 08:08:45 +00:00
|
|
|
OPTION_COMPILER_ENABLE_BASELINEJIT,
|
|
|
|
OPTION_COMPILER_BASELINEJIT_HOTNESS_THRESHOLD,
|
|
|
|
OPTION_COMPILER_FORCE_BASELINEJIT_COMPILE_MAIN,
|
2024-05-10 08:12:17 +00:00
|
|
|
OPTION_ENABLE_AOT_CRASH_ESCAPE,
|
2024-05-16 08:07:26 +00:00
|
|
|
OPTION_COMPILER_ENABLE_JIT_FAST_COMPILE,
|
2024-06-07 08:51:28 +00:00
|
|
|
OPTION_COMPILER_BASELINE_PGO,
|
2024-07-02 07:38:59 +00:00
|
|
|
OPTION_ASYNC_LOAD_ABC,
|
2024-07-17 03:02:36 +00:00
|
|
|
OPTION_ASYNC_LOAD_ABC_TEST,
|
2024-07-04 08:02:26 +00:00
|
|
|
OPTION_PGO_TRACE,
|
2024-07-19 01:54:58 +00:00
|
|
|
OPTION_COMPILER_TRY_CATCH_FUNCTION,
|
2024-07-25 08:18:20 +00:00
|
|
|
OPTION_COMPILER_PGO_FORCE_DUMP,
|
2022-09-20 08:00:16 +00:00
|
|
|
};
|
2024-07-19 01:54:58 +00:00
|
|
|
static_assert(OPTION_SPLIT_ONE == 64); // add new option at the bottom, DO NOT modify this value
|
2022-09-20 08:00:16 +00:00
|
|
|
|
|
|
|
class PUBLIC_API JSRuntimeOptions {
|
2021-10-19 03:55:00 +00:00
|
|
|
public:
|
2023-01-03 02:32:21 +00:00
|
|
|
JSRuntimeOptions() {}
|
2021-10-19 03:55:00 +00:00
|
|
|
~JSRuntimeOptions() = default;
|
|
|
|
DEFAULT_COPY_SEMANTIC(JSRuntimeOptions);
|
|
|
|
DEFAULT_MOVE_SEMANTIC(JSRuntimeOptions);
|
|
|
|
|
2024-07-04 08:02:26 +00:00
|
|
|
bool ParseCommand(const int argc, const char** argv);
|
2022-09-20 08:00:16 +00:00
|
|
|
bool SetDefaultValue(char* argv);
|
2021-10-19 03:55:00 +00:00
|
|
|
|
2022-04-30 12:02:19 +00:00
|
|
|
bool EnableArkTools() const
|
2021-10-19 03:55:00 +00:00
|
|
|
{
|
2024-07-04 08:02:26 +00:00
|
|
|
return (enableArkTools_) || ((static_cast<uint32_t>(arkProperties_) & ArkProperties::ENABLE_ARKTOOLS) != 0);
|
2021-10-19 03:55:00 +00:00
|
|
|
}
|
|
|
|
|
2024-07-04 08:02:26 +00:00
|
|
|
void SetEnableArkTools(bool value)
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
enableArkTools_ = value;
|
2021-10-19 03:55:00 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
bool WasSetEnableArkTools() const
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return WasOptionSet(OPTION_ENABLE_ARK_TOOLS);
|
2021-10-19 03:55:00 +00:00
|
|
|
}
|
|
|
|
|
2022-04-28 01:16:30 +00:00
|
|
|
bool IsEnableRuntimeStat() const
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return enableRuntimeStat_;
|
2022-04-28 01:16:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void SetEnableRuntimeStat(bool value)
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
enableRuntimeStat_ = value;
|
2022-04-28 01:16:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
bool WasSetEnableRuntimeStat() const
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return WasOptionSet(OPTION_ENABLE_RUNTIME_STAT);
|
2022-04-28 01:16:30 +00:00
|
|
|
}
|
|
|
|
|
2022-05-16 11:38:24 +00:00
|
|
|
std::string GetStubFile() const
|
2021-10-27 06:19:18 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return stubFile_;
|
2021-10-27 03:06:05 +00:00
|
|
|
}
|
|
|
|
|
2022-05-16 11:38:24 +00:00
|
|
|
void SetStubFile(std::string value)
|
2021-10-27 06:19:18 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
stubFile_ = std::move(value);
|
2021-10-27 03:06:05 +00:00
|
|
|
}
|
|
|
|
|
2023-09-05 07:09:21 +00:00
|
|
|
void SetCompilerPkgJsonInfo(std::string pkgJsonInfo)
|
|
|
|
{
|
|
|
|
compilerPkgInfo_ = std::move(pkgJsonInfo);
|
|
|
|
}
|
|
|
|
|
2024-07-04 08:02:26 +00:00
|
|
|
const std::string& GetCompilerPkgJsonInfo() const
|
2023-09-05 07:09:21 +00:00
|
|
|
{
|
|
|
|
return compilerPkgInfo_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetCompilerExternalPkgJsonInfo(std::string pkgJsonInfo)
|
|
|
|
{
|
|
|
|
compilerExternalPkgInfo_ = std::move(pkgJsonInfo);
|
|
|
|
}
|
|
|
|
|
2024-07-04 08:02:26 +00:00
|
|
|
const std::string& GetCompilerExternalPkgJsonInfo() const
|
2023-09-05 07:09:21 +00:00
|
|
|
{
|
|
|
|
return compilerExternalPkgInfo_;
|
|
|
|
}
|
|
|
|
|
2023-09-27 06:36:04 +00:00
|
|
|
void SetCompilerEnableExternalPkg(bool compilerEnableExternalPkg)
|
|
|
|
{
|
|
|
|
compilerEnableExternalPkg_ = compilerEnableExternalPkg;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool GetCompilerEnableExternalPkg() const
|
|
|
|
{
|
|
|
|
return compilerEnableExternalPkg_;
|
|
|
|
}
|
|
|
|
|
2022-05-16 11:38:24 +00:00
|
|
|
bool WasStubFileSet() const
|
2021-10-27 06:19:18 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return WasOptionSet(OPTION_STUB_FILE);
|
2022-02-23 08:50:04 +00:00
|
|
|
}
|
|
|
|
|
2022-10-15 07:55:29 +00:00
|
|
|
void SetEnableAOT(bool value)
|
|
|
|
{
|
|
|
|
enableAOT_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool GetEnableAOT() const
|
|
|
|
{
|
|
|
|
return enableAOT_;
|
|
|
|
}
|
|
|
|
|
2022-02-23 08:50:04 +00:00
|
|
|
std::string GetAOTOutputFile() const
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return aotOutputFile_;
|
2022-02-23 08:50:04 +00:00
|
|
|
}
|
|
|
|
|
2023-02-21 11:31:52 +00:00
|
|
|
void SetAOTOutputFile(const std::string& value)
|
2022-02-23 08:50:04 +00:00
|
|
|
{
|
2023-02-21 11:31:52 +00:00
|
|
|
aotOutputFile_ = panda::os::file::File::GetExtendedFilePath(value);
|
2022-02-23 08:50:04 +00:00
|
|
|
}
|
|
|
|
|
2022-06-08 06:43:48 +00:00
|
|
|
bool WasAOTOutputFileSet() const
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return WasOptionSet(OPTION_AOT_FILE);
|
2022-06-08 06:43:48 +00:00
|
|
|
}
|
|
|
|
|
2022-04-25 12:08:55 +00:00
|
|
|
std::string GetTargetTriple() const
|
2022-02-23 08:50:04 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return targetTriple_;
|
2022-02-23 08:50:04 +00:00
|
|
|
}
|
|
|
|
|
2022-04-25 12:08:55 +00:00
|
|
|
void SetTargetTriple(std::string value)
|
2022-02-23 08:50:04 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
targetTriple_ = std::move(value);
|
2022-04-25 12:08:55 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
size_t GetOptLevel() const
|
2022-02-23 08:50:04 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return asmOptLevel_;
|
2022-02-23 08:50:04 +00:00
|
|
|
}
|
|
|
|
|
2022-04-25 12:08:55 +00:00
|
|
|
void SetOptLevel(size_t value)
|
2022-02-23 08:50:04 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
asmOptLevel_ = value;
|
2021-10-27 03:06:05 +00:00
|
|
|
}
|
|
|
|
|
2022-06-17 02:22:26 +00:00
|
|
|
size_t GetRelocMode() const
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return relocationMode_;
|
2022-06-17 02:22:26 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void SetRelocMode(size_t value)
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
relocationMode_ = value;
|
2022-06-17 02:22:26 +00:00
|
|
|
}
|
|
|
|
|
2022-04-30 12:02:19 +00:00
|
|
|
bool EnableForceGC() const
|
2021-12-17 09:18:10 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return enableForceGc_;
|
2021-12-17 09:18:10 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void SetEnableForceGC(bool value)
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
enableForceGc_ = value;
|
2021-12-17 09:18:10 +00:00
|
|
|
}
|
|
|
|
|
2024-05-12 11:02:47 +00:00
|
|
|
bool EnableEdenGC() const
|
|
|
|
{
|
|
|
|
return enableEdenGC_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetEnableEdenGC(bool value)
|
|
|
|
{
|
|
|
|
enableEdenGC_ = value;
|
|
|
|
}
|
|
|
|
|
2022-04-30 12:02:19 +00:00
|
|
|
bool ForceFullGC() const
|
2021-12-17 09:18:10 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return forceFullGc_;
|
2021-12-17 09:18:10 +00:00
|
|
|
}
|
|
|
|
|
2022-02-16 07:34:31 +00:00
|
|
|
void SetForceFullGC(bool value)
|
2021-12-17 09:18:10 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
forceFullGc_ = value;
|
2021-12-17 09:18:10 +00:00
|
|
|
}
|
|
|
|
|
2024-02-22 06:54:53 +00:00
|
|
|
void SetForceSharedGCFrequency(size_t frequency)
|
|
|
|
{
|
|
|
|
forceSharedGc_ = frequency;
|
|
|
|
}
|
|
|
|
|
|
|
|
uint32_t GetForceSharedGCFrequency() const
|
|
|
|
{
|
|
|
|
return forceSharedGc_;
|
|
|
|
}
|
|
|
|
|
2022-05-27 09:56:07 +00:00
|
|
|
void SetGcThreadNum(size_t num)
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
gcThreadNum_ = num;
|
2022-05-27 09:56:07 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
size_t GetGcThreadNum() const
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return gcThreadNum_;
|
2022-05-27 09:56:07 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void SetLongPauseTime(size_t time)
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
longPauseTime_ = time;
|
2022-05-27 09:56:07 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
size_t GetLongPauseTime() const
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return longPauseTime_;
|
2022-05-27 09:56:07 +00:00
|
|
|
}
|
|
|
|
|
2022-01-07 09:36:04 +00:00
|
|
|
void SetArkProperties(int prop)
|
2021-12-17 09:18:10 +00:00
|
|
|
{
|
2022-01-07 09:36:04 +00:00
|
|
|
if (prop != ArkProperties::DEFAULT) {
|
2022-09-20 08:00:16 +00:00
|
|
|
arkProperties_ = prop;
|
2022-01-07 09:36:04 +00:00
|
|
|
}
|
2021-12-17 09:18:10 +00:00
|
|
|
}
|
|
|
|
|
2023-01-29 03:40:13 +00:00
|
|
|
void SetArkBundleName(std::string bundleName)
|
|
|
|
{
|
|
|
|
if (bundleName != "") {
|
|
|
|
arkBundleName_ = bundleName;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-04-09 06:54:58 +00:00
|
|
|
void SetMemConfigProperty(std::string configProperty)
|
|
|
|
{
|
|
|
|
if (configProperty != "") {
|
|
|
|
std::string key;
|
|
|
|
std::string value;
|
2024-07-04 08:02:26 +00:00
|
|
|
for (char c: configProperty) {
|
2024-04-09 06:54:58 +00:00
|
|
|
if (isdigit(c)) {
|
|
|
|
value += c;
|
|
|
|
} else {
|
|
|
|
key += c;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (key == "jsHeap") {
|
2024-04-24 01:56:45 +00:00
|
|
|
heapSize_ = static_cast<size_t>(stoi(value)) * 1_MB;
|
2024-04-09 06:54:58 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
size_t GetHeapSize() const
|
|
|
|
{
|
|
|
|
return heapSize_;
|
|
|
|
}
|
|
|
|
|
2022-01-07 09:36:04 +00:00
|
|
|
int GetDefaultProperties()
|
2021-12-17 09:18:10 +00:00
|
|
|
{
|
2022-11-25 09:08:52 +00:00
|
|
|
return ArkProperties::PARALLEL_GC | ArkProperties::CONCURRENT_MARK | ArkProperties::CONCURRENT_SWEEP |
|
2024-07-04 08:02:26 +00:00
|
|
|
ArkProperties::ENABLE_ARKTOOLS | ArkProperties::ENABLE_IDLE_GC;
|
2022-01-07 09:36:04 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
int GetArkProperties()
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return arkProperties_;
|
2022-01-07 09:36:04 +00:00
|
|
|
}
|
|
|
|
|
2023-01-29 03:40:13 +00:00
|
|
|
std::string GetArkBundleName() const
|
|
|
|
{
|
|
|
|
return arkBundleName_;
|
|
|
|
}
|
|
|
|
|
2022-04-30 12:02:19 +00:00
|
|
|
bool EnableOptionalLog() const
|
2022-01-07 09:36:04 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return (static_cast<uint32_t>(arkProperties_) & ArkProperties::OPTIONAL_LOG) != 0;
|
2022-01-07 09:36:04 +00:00
|
|
|
}
|
|
|
|
|
2022-04-30 12:02:19 +00:00
|
|
|
bool EnableGCStatsPrint() const
|
2022-01-07 09:36:04 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return (static_cast<uint32_t>(arkProperties_) & ArkProperties::GC_STATS_PRINT) != 0;
|
2022-01-07 09:36:04 +00:00
|
|
|
}
|
|
|
|
|
2022-04-30 12:02:19 +00:00
|
|
|
bool EnableParallelGC() const
|
2022-01-07 09:36:04 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return (static_cast<uint32_t>(arkProperties_) & ArkProperties::PARALLEL_GC) != 0;
|
2022-01-07 09:36:04 +00:00
|
|
|
}
|
|
|
|
|
2022-04-30 12:02:19 +00:00
|
|
|
bool EnableConcurrentMark() const
|
2022-01-07 09:36:04 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return (static_cast<uint32_t>(arkProperties_) & ArkProperties::CONCURRENT_MARK) != 0;
|
2022-01-07 09:36:04 +00:00
|
|
|
}
|
|
|
|
|
2024-04-02 07:34:31 +00:00
|
|
|
bool EnableSharedConcurrentMark() const
|
|
|
|
{
|
2024-05-20 13:39:57 +00:00
|
|
|
// Use DISABLE to adapt to the exsiting ArkProperties in testing scripts.
|
|
|
|
return (static_cast<uint32_t>(arkProperties_) & ArkProperties::DISABLE_SHARED_CONCURRENT_MARK) == 0;
|
2024-04-02 07:34:31 +00:00
|
|
|
}
|
|
|
|
|
2022-09-23 02:18:02 +00:00
|
|
|
bool EnableExceptionBacktrace() const
|
|
|
|
{
|
|
|
|
return (static_cast<uint32_t>(arkProperties_) & ArkProperties::EXCEPTION_BACKTRACE) != 0;
|
|
|
|
}
|
|
|
|
|
2022-04-30 12:02:19 +00:00
|
|
|
bool EnableConcurrentSweep() const
|
2022-01-07 09:36:04 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return (static_cast<uint32_t>(arkProperties_) & ArkProperties::CONCURRENT_SWEEP) != 0;
|
2021-12-17 09:18:10 +00:00
|
|
|
}
|
|
|
|
|
2022-04-30 12:02:19 +00:00
|
|
|
bool EnableThreadCheck() const
|
2022-01-26 02:08:18 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return (static_cast<uint32_t>(arkProperties_) & ArkProperties::THREAD_CHECK) != 0;
|
2022-02-22 12:16:40 +00:00
|
|
|
}
|
|
|
|
|
2023-01-11 09:11:26 +00:00
|
|
|
bool EnableIdleGC() const
|
|
|
|
{
|
2023-11-29 10:25:48 +00:00
|
|
|
return false;
|
2023-01-11 09:11:26 +00:00
|
|
|
}
|
|
|
|
|
2023-04-23 01:52:14 +00:00
|
|
|
bool EnableGCTracer() const
|
|
|
|
{
|
|
|
|
return (static_cast<uint32_t>(arkProperties_) & ArkProperties::ENABLE_GC_TRACER) != 0;
|
|
|
|
}
|
|
|
|
|
2023-01-17 13:12:48 +00:00
|
|
|
bool EnableGlobalObjectLeakCheck() const
|
|
|
|
{
|
|
|
|
return (static_cast<uint32_t>(arkProperties_) & ArkProperties::GLOBAL_OBJECT_LEAK_CHECK) != 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool EnableGlobalPrimitiveLeakCheck() const
|
|
|
|
{
|
|
|
|
return (static_cast<uint32_t>(arkProperties_) & ArkProperties::GLOBAL_PRIMITIVE_LEAK_CHECK) != 0;
|
|
|
|
}
|
|
|
|
|
2023-01-12 07:29:25 +00:00
|
|
|
bool EnableGlobalLeakCheck() const
|
|
|
|
{
|
2023-01-17 13:12:48 +00:00
|
|
|
return EnableGlobalObjectLeakCheck() || EnableGlobalPrimitiveLeakCheck();
|
2023-01-12 07:29:25 +00:00
|
|
|
}
|
|
|
|
|
2023-06-14 02:49:31 +00:00
|
|
|
bool EnableCpuProfilerColdStartMainThread() const
|
2023-01-29 03:40:13 +00:00
|
|
|
{
|
2023-06-14 02:49:31 +00:00
|
|
|
return (static_cast<uint32_t>(arkProperties_) & ArkProperties::CPU_PROFILER_COLD_START_MAIN_THREAD) != 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool EnableCpuProfilerColdStartWorkerThread() const
|
|
|
|
{
|
|
|
|
return (static_cast<uint32_t>(arkProperties_) & ArkProperties::CPU_PROFILER_COLD_START_WORKER_THREAD) != 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool EnableCpuProfilerAnyTimeMainThread() const
|
|
|
|
{
|
|
|
|
return (static_cast<uint32_t>(arkProperties_) & ArkProperties::CPU_PROFILER_ANY_TIME_MAIN_THREAD) != 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool EnableCpuProfilerAnyTimeWorkerThread() const
|
|
|
|
{
|
|
|
|
return (static_cast<uint32_t>(arkProperties_) & ArkProperties::CPU_PROFILER_ANY_TIME_WORKER_THREAD) != 0;
|
2023-01-29 03:40:13 +00:00
|
|
|
}
|
|
|
|
|
2023-01-31 07:38:31 +00:00
|
|
|
bool EnableCpuProfilerVMTag() const
|
|
|
|
{
|
|
|
|
return (static_cast<uint32_t>(arkProperties_) & ArkProperties::ENABLE_CPU_PROFILER_VM_TAG) != 0;
|
|
|
|
}
|
|
|
|
|
2023-01-12 07:29:25 +00:00
|
|
|
bool IsStartGlobalLeakCheck() const
|
|
|
|
{
|
|
|
|
return startGlobalLeakCheck_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SwitchStartGlobalLeakCheck()
|
|
|
|
{
|
|
|
|
startGlobalLeakCheck_ = !startGlobalLeakCheck_;
|
|
|
|
}
|
|
|
|
|
2022-06-07 08:44:17 +00:00
|
|
|
bool EnableSnapshotSerialize() const
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return (static_cast<uint32_t>(arkProperties_) & ArkProperties::ENABLE_SNAPSHOT_SERIALIZE) != 0;
|
2022-06-07 08:44:17 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
bool EnableSnapshotDeserialize() const
|
|
|
|
{
|
2022-10-10 02:08:43 +00:00
|
|
|
if (WIN_OR_MAC_OR_IOS_PLATFORM) {
|
2022-06-07 08:44:17 +00:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2022-09-20 08:00:16 +00:00
|
|
|
return (static_cast<uint32_t>(arkProperties_) & ArkProperties::ENABLE_SNAPSHOT_DESERIALIZE) != 0;
|
2022-06-07 08:44:17 +00:00
|
|
|
}
|
|
|
|
|
2024-02-08 05:12:59 +00:00
|
|
|
bool EnableHeapVerify() const
|
|
|
|
{
|
|
|
|
return (static_cast<uint32_t>(arkProperties_) & ArkProperties::ENABLE_HEAP_VERIFY) != 0;
|
|
|
|
}
|
|
|
|
|
2024-04-15 07:46:14 +00:00
|
|
|
bool EnableMicroJobTrace() const
|
|
|
|
{
|
|
|
|
return (static_cast<uint32_t>(arkProperties_) & ArkProperties::ENABLE_MICROJOB_TRACE) != 0;
|
|
|
|
}
|
|
|
|
|
2024-05-28 08:57:13 +00:00
|
|
|
bool EnableESMTrace() const
|
|
|
|
{
|
|
|
|
return (static_cast<uint32_t>(arkProperties_) & ArkProperties::ENABLE_ESM_TRACE) != 0;
|
|
|
|
}
|
|
|
|
|
2024-05-06 10:09:35 +00:00
|
|
|
bool EnableInitOldSocketSession() const
|
|
|
|
{
|
|
|
|
return (static_cast<uint32_t>(arkProperties_) & ArkProperties::ENABLE_INIT_OLD_SOCKET_SESSION) != 0;
|
|
|
|
}
|
|
|
|
|
2024-05-07 07:13:23 +00:00
|
|
|
bool EnableModuleLog() const
|
|
|
|
{
|
|
|
|
return (static_cast<uint32_t>(arkProperties_) & ArkProperties::ENABLE_MODULE_LOG) != 0;
|
|
|
|
}
|
|
|
|
|
2022-05-27 09:56:07 +00:00
|
|
|
bool WasSetMaxNonmovableSpaceCapacity() const
|
2022-02-22 12:16:40 +00:00
|
|
|
{
|
2023-04-21 06:11:22 +00:00
|
|
|
return WasOptionSet(OPTION_MAX_UNMOVABLE_SPACE);
|
2022-02-22 12:16:40 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
size_t MaxNonmovableSpaceCapacity() const
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return maxNonmovableSpaceCapacity_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetMaxNonmovableSpaceCapacity(uint32_t value)
|
|
|
|
{
|
|
|
|
maxNonmovableSpaceCapacity_ = value;
|
2022-02-22 12:16:40 +00:00
|
|
|
}
|
|
|
|
|
2022-05-16 02:20:46 +00:00
|
|
|
void SetEnableAsmInterpreter(bool value)
|
2022-03-10 09:34:02 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
enableAsmInterpreter_ = value;
|
2022-05-16 02:20:46 +00:00
|
|
|
}
|
|
|
|
|
2022-06-08 06:43:48 +00:00
|
|
|
bool GetEnableAsmInterpreter() const
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return enableAsmInterpreter_;
|
2022-06-08 06:43:48 +00:00
|
|
|
}
|
|
|
|
|
2023-04-24 03:43:21 +00:00
|
|
|
void SetEnableBuiltinsLazy(bool value)
|
|
|
|
{
|
|
|
|
enableBuiltinsLazy_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool GetEnableBuiltinsLazy() const
|
|
|
|
{
|
|
|
|
return enableBuiltinsLazy_;
|
|
|
|
}
|
|
|
|
|
2022-05-16 02:20:46 +00:00
|
|
|
void SetAsmOpcodeDisableRange(std::string value)
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
asmOpcodeDisableRange_ = std::move(value);
|
2022-03-10 09:34:02 +00:00
|
|
|
}
|
|
|
|
|
2024-06-06 05:12:30 +00:00
|
|
|
void SetDisableCodeSign(bool value)
|
|
|
|
{
|
|
|
|
disableCodeSign_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool GetDisableCodeSign() const
|
|
|
|
{
|
|
|
|
return disableCodeSign_;
|
|
|
|
}
|
|
|
|
|
2024-07-09 22:52:07 +00:00
|
|
|
void SetEnableJitFort(bool value)
|
|
|
|
{
|
|
|
|
enableJitFort_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool GetEnableJitFort() const
|
|
|
|
{
|
|
|
|
return enableJitFort_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetEnableAsyncCopyToFort(bool value)
|
|
|
|
{
|
|
|
|
enableAsyncCopyToFort_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool GetEnableAsyncCopyToFort() const
|
|
|
|
{
|
|
|
|
return enableAsyncCopyToFort_;
|
|
|
|
}
|
|
|
|
|
2022-03-10 09:34:02 +00:00
|
|
|
void ParseAsmInterOption()
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
asmInterParsedOption_.enableAsm = enableAsmInterpreter_;
|
|
|
|
std::string strAsmOpcodeDisableRange = asmOpcodeDisableRange_;
|
2022-05-16 02:20:46 +00:00
|
|
|
if (strAsmOpcodeDisableRange.empty()) {
|
2022-03-10 09:34:02 +00:00
|
|
|
return;
|
|
|
|
}
|
2022-03-16 10:12:15 +00:00
|
|
|
|
2022-03-10 09:34:02 +00:00
|
|
|
// asm interpreter handle disable range
|
2022-05-16 02:20:46 +00:00
|
|
|
size_t pos = strAsmOpcodeDisableRange.find(",");
|
|
|
|
if (pos != std::string::npos) {
|
|
|
|
std::string strStart = strAsmOpcodeDisableRange.substr(0, pos);
|
|
|
|
std::string strEnd = strAsmOpcodeDisableRange.substr(pos + 1);
|
2022-12-26 10:40:19 +00:00
|
|
|
int start = strStart.empty() ? 0 : std::stoi(strStart);
|
2022-05-16 02:20:46 +00:00
|
|
|
int end = strEnd.empty() ? kungfu::BYTECODE_STUB_END_ID : std::stoi(strEnd);
|
2024-07-04 08:02:26 +00:00
|
|
|
if (start >= 0 && start < kungfu::BytecodeStubCSigns::NUM_OF_ALL_NORMAL_STUBS && end >= 0 &&
|
|
|
|
end < kungfu::BytecodeStubCSigns::NUM_OF_ALL_NORMAL_STUBS && start <= end) {
|
2022-05-16 02:20:46 +00:00
|
|
|
asmInterParsedOption_.handleStart = start;
|
|
|
|
asmInterParsedOption_.handleEnd = end;
|
2022-03-10 09:34:02 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
AsmInterParsedOption GetAsmInterParsedOption() const
|
|
|
|
{
|
|
|
|
return asmInterParsedOption_;
|
|
|
|
}
|
|
|
|
|
2022-07-27 09:11:09 +00:00
|
|
|
std::string GetCompilerLogOption() const
|
2022-04-14 08:14:34 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return compilerLogOpt_;
|
2022-04-14 08:14:34 +00:00
|
|
|
}
|
|
|
|
|
2022-07-27 09:11:09 +00:00
|
|
|
void SetCompilerLogOption(std::string value)
|
2022-04-14 08:14:34 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
compilerLogOpt_ = std::move(value);
|
2022-04-14 08:14:34 +00:00
|
|
|
}
|
|
|
|
|
2022-07-27 09:11:09 +00:00
|
|
|
bool WasSetCompilerLogOption() const
|
2022-04-14 08:14:34 +00:00
|
|
|
{
|
2024-07-04 08:02:26 +00:00
|
|
|
return WasOptionSet(OPTION_COMPILER_LOG_OPT) && GetCompilerLogOption().find("none") == std::string::npos;
|
2022-07-27 09:11:09 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
std::string GetMethodsListForLog() const
|
|
|
|
{
|
2022-09-22 08:01:36 +00:00
|
|
|
return compilerLogMethods_;
|
2022-07-27 09:11:09 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void SetMethodsListForLog(std::string value)
|
|
|
|
{
|
2022-09-22 08:01:36 +00:00
|
|
|
compilerLogMethods_ = std::move(value);
|
2022-07-27 09:11:09 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
bool WasSetMethodsListForLog() const
|
|
|
|
{
|
2024-07-04 08:02:26 +00:00
|
|
|
return WasOptionSet(OPTION_COMPILER_LOG_METHODS) && GetCompilerLogOption().find("none") == std::string::npos &&
|
|
|
|
GetCompilerLogOption().find("all") == std::string::npos;
|
2022-04-14 08:14:34 +00:00
|
|
|
}
|
|
|
|
|
2022-11-17 11:12:49 +00:00
|
|
|
void SetCompilerLogSnapshot(bool value)
|
|
|
|
{
|
|
|
|
compilerLogSnapshot_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableCompilerLogSnapshot() const
|
|
|
|
{
|
|
|
|
return compilerLogSnapshot_;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool WasSetCompilerLogSnapshot() const
|
|
|
|
{
|
|
|
|
return WasOptionSet(OPTION_COMPILER_LOG_SNAPSHOT);
|
|
|
|
}
|
|
|
|
|
2022-11-10 09:17:49 +00:00
|
|
|
void SetCompilerLogTime(bool value)
|
|
|
|
{
|
|
|
|
compilerLogTime_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableCompilerLogTime() const
|
|
|
|
{
|
|
|
|
return compilerLogTime_;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool WasSetCompilerLogTime() const
|
|
|
|
{
|
|
|
|
return WasOptionSet(OPTION_COMPILER_LOG_TIME);
|
|
|
|
}
|
|
|
|
|
2022-07-12 14:05:08 +00:00
|
|
|
uint64_t GetSerializerBufferSizeLimit() const
|
2022-04-20 08:27:09 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return serializerBufferSizeLimit_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetSerializerBufferSizeLimit(uint64_t value)
|
|
|
|
{
|
|
|
|
serializerBufferSizeLimit_ = value;
|
2022-04-20 08:27:09 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
uint32_t GetHeapSizeLimit() const
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return heapSizeLimit_;
|
2022-04-20 08:27:09 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void SetHeapSizeLimit(uint32_t value)
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
heapSizeLimit_ = value;
|
2022-04-20 08:27:09 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
bool WasSetHeapSizeLimit() const
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return WasOptionSet(OPTION_HEAP_SIZE_LIMIT);
|
2022-04-20 08:27:09 +00:00
|
|
|
}
|
|
|
|
|
2022-06-15 03:23:16 +00:00
|
|
|
void SetIsWorker(bool isWorker)
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
isWorker_ = isWorker;
|
2022-06-15 03:23:16 +00:00
|
|
|
}
|
|
|
|
|
2024-07-23 09:31:15 +00:00
|
|
|
void SetIsRestrictedWorker(bool isRestrictedWorker)
|
2024-04-27 14:22:04 +00:00
|
|
|
{
|
2024-07-23 09:31:15 +00:00
|
|
|
isRestrictedWorker_ = isRestrictedWorker;
|
2024-04-27 14:22:04 +00:00
|
|
|
}
|
|
|
|
|
2022-06-15 03:23:16 +00:00
|
|
|
bool IsWorker() const
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return isWorker_;
|
2022-06-15 03:23:16 +00:00
|
|
|
}
|
|
|
|
|
2024-04-27 14:22:04 +00:00
|
|
|
bool IsRestrictedWorker() const
|
|
|
|
{
|
2024-07-23 09:31:15 +00:00
|
|
|
return isRestrictedWorker_;
|
2024-04-27 14:22:04 +00:00
|
|
|
}
|
|
|
|
|
2022-04-30 12:02:19 +00:00
|
|
|
bool EnableIC() const
|
2022-04-20 08:27:09 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return enableIC_;
|
2022-04-20 08:27:09 +00:00
|
|
|
}
|
|
|
|
|
2022-04-30 12:02:19 +00:00
|
|
|
void SetEnableIC(bool value)
|
2022-04-20 08:27:09 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
enableIC_ = value;
|
2022-04-20 08:27:09 +00:00
|
|
|
}
|
|
|
|
|
2022-04-30 12:02:19 +00:00
|
|
|
bool WasSetEnableIC() const
|
2022-04-20 08:27:09 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return WasOptionSet(OPTION_ENABLE_IC);
|
2022-04-20 08:27:09 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
std::string GetIcuDataPath() const
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return icuDataPath_;
|
2022-04-20 08:27:09 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void SetIcuDataPath(std::string value)
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
icuDataPath_ = std::move(value);
|
2022-04-20 08:27:09 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
bool WasSetIcuDataPath() const
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return WasOptionSet(OPTION_ICU_DATA_PATH);
|
2022-04-20 08:27:09 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
bool IsStartupTime() const
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return startupTime_;
|
2022-04-20 08:27:09 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void SetStartupTime(bool value)
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
startupTime_ = value;
|
2022-04-20 08:27:09 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
bool WasSetStartupTime() const
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return WasOptionSet(OPTION_STARTUP_TIME);
|
2022-04-20 08:27:09 +00:00
|
|
|
}
|
|
|
|
|
2022-11-25 08:51:55 +00:00
|
|
|
void SetTraceBc(bool value)
|
2022-07-29 09:02:27 +00:00
|
|
|
{
|
2022-11-25 08:51:55 +00:00
|
|
|
traceBc_ = value;
|
2022-07-29 09:02:27 +00:00
|
|
|
}
|
|
|
|
|
2022-11-25 08:51:55 +00:00
|
|
|
bool IsTraceBC() const
|
2022-07-29 09:02:27 +00:00
|
|
|
{
|
2022-11-25 08:51:55 +00:00
|
|
|
return traceBc_;
|
2022-07-29 09:02:27 +00:00
|
|
|
}
|
|
|
|
|
2022-11-25 08:51:55 +00:00
|
|
|
bool WasSetTraceBc() const
|
2022-07-29 09:02:27 +00:00
|
|
|
{
|
2023-04-07 08:51:43 +00:00
|
|
|
return WasOptionSet(OPTION_COMPILER_TRACE_BC);
|
2022-07-29 09:02:27 +00:00
|
|
|
}
|
|
|
|
|
2022-09-20 08:00:16 +00:00
|
|
|
std::string GetLogLevel() const
|
2022-08-17 08:53:35 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return logLevel_;
|
2022-08-17 08:53:35 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void SetLogLevel(std::string value)
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
logLevel_ = std::move(value);
|
2022-08-17 08:53:35 +00:00
|
|
|
}
|
|
|
|
|
2022-09-20 08:00:16 +00:00
|
|
|
bool WasSetLogLevel() const
|
2022-08-17 08:53:35 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return WasOptionSet(OPTION_LOG_LEVEL);
|
2022-08-17 08:53:35 +00:00
|
|
|
}
|
|
|
|
|
2022-09-20 08:00:16 +00:00
|
|
|
arg_list_t GetLogComponents() const
|
2022-08-17 08:53:35 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return logComponents_;
|
2022-08-17 08:53:35 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void SetLogComponents(arg_list_t value)
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
logComponents_ = std::move(value);
|
2022-08-17 08:53:35 +00:00
|
|
|
}
|
|
|
|
|
2022-09-20 08:00:16 +00:00
|
|
|
bool WasSetLogComponents() const
|
2022-08-17 08:53:35 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return WasOptionSet(OPTION_LOG_COMPONENTS);
|
2022-08-17 08:53:35 +00:00
|
|
|
}
|
|
|
|
|
2022-09-20 08:00:16 +00:00
|
|
|
arg_list_t GetLogDebug() const
|
2022-08-17 08:53:35 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return logDebug_;
|
2022-08-17 08:53:35 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void SetLogDebug(arg_list_t value)
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
logDebug_ = std::move(value);
|
2022-08-17 08:53:35 +00:00
|
|
|
}
|
|
|
|
|
2022-09-20 08:00:16 +00:00
|
|
|
bool WasSetLogDebug() const
|
2022-08-17 08:53:35 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return WasOptionSet(OPTION_LOG_DEBUG);
|
2022-08-17 08:53:35 +00:00
|
|
|
}
|
|
|
|
|
2022-09-20 08:00:16 +00:00
|
|
|
arg_list_t GetLogInfo() const
|
2022-08-17 08:53:35 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return logInfo_;
|
2022-08-17 08:53:35 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void SetLogInfo(arg_list_t value)
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
logInfo_ = std::move(value);
|
2022-08-17 08:53:35 +00:00
|
|
|
}
|
|
|
|
|
2022-09-20 08:00:16 +00:00
|
|
|
bool WasSetLogInfo() const
|
2022-08-17 08:53:35 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return WasOptionSet(OPTION_LOG_INFO);
|
2022-08-17 08:53:35 +00:00
|
|
|
}
|
|
|
|
|
2022-09-20 08:00:16 +00:00
|
|
|
arg_list_t GetLogWarning() const
|
2022-08-17 08:53:35 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return logWarning_;
|
2022-08-17 08:53:35 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void SetLogWarning(arg_list_t value)
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
logWarning_ = std::move(value);
|
2022-08-17 08:53:35 +00:00
|
|
|
}
|
|
|
|
|
2022-09-20 08:00:16 +00:00
|
|
|
bool WasSetLogWarning() const
|
2022-08-17 08:53:35 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return WasOptionSet(OPTION_LOG_WARNING);
|
2022-08-17 08:53:35 +00:00
|
|
|
}
|
|
|
|
|
2022-09-20 08:00:16 +00:00
|
|
|
arg_list_t GetLogError() const
|
2022-08-17 08:53:35 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return logError_;
|
2022-08-17 08:53:35 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void SetLogError(arg_list_t value)
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
logError_ = std::move(value);
|
2022-08-17 08:53:35 +00:00
|
|
|
}
|
|
|
|
|
2022-09-20 08:00:16 +00:00
|
|
|
bool WasSetLogError() const
|
2022-08-17 08:53:35 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return WasOptionSet(OPTION_LOG_ERROR);
|
2022-08-17 08:53:35 +00:00
|
|
|
}
|
|
|
|
|
2022-09-20 08:00:16 +00:00
|
|
|
arg_list_t GetLogFatal() const
|
2022-08-17 08:53:35 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return logFatal_;
|
2022-08-17 08:53:35 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void SetLogFatal(arg_list_t value)
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
logFatal_ = std::move(value);
|
2022-08-17 08:53:35 +00:00
|
|
|
}
|
|
|
|
|
2022-09-20 08:00:16 +00:00
|
|
|
bool WasSetLogFatal() const
|
2022-08-17 08:53:35 +00:00
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return WasOptionSet(OPTION_LOG_FATAL);
|
2022-08-17 08:53:35 +00:00
|
|
|
}
|
|
|
|
|
2022-08-18 03:52:41 +00:00
|
|
|
size_t GetMaxAotMethodSize() const
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return maxAotMethodSize_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetMaxAotMethodSize(uint32_t value)
|
|
|
|
{
|
|
|
|
maxAotMethodSize_ = value;
|
2022-08-18 03:52:41 +00:00
|
|
|
}
|
|
|
|
|
2023-01-30 06:39:03 +00:00
|
|
|
double GetTypeThreshold() const
|
|
|
|
{
|
|
|
|
return typeThreshold_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetTypeThreshold(double threshold)
|
|
|
|
{
|
|
|
|
typeThreshold_ = threshold;
|
|
|
|
}
|
|
|
|
|
2022-09-09 08:44:33 +00:00
|
|
|
std::string GetEntryPoint() const
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return entryPoint_;
|
2022-09-09 08:44:33 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void SetEntryPoint(std::string value)
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
entryPoint_ = std::move(value);
|
2022-09-09 08:44:33 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
bool WasSetEntryPoint() const
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return WasOptionSet(OPTION_ENTRY_POINT);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool GetMergeAbc() const
|
|
|
|
{
|
|
|
|
return mergeAbc_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetMergeAbc(bool value)
|
|
|
|
{
|
|
|
|
mergeAbc_ = value;
|
2022-09-09 08:44:33 +00:00
|
|
|
}
|
|
|
|
|
2023-12-19 12:41:49 +00:00
|
|
|
void SetEnableContext(bool value)
|
|
|
|
{
|
|
|
|
enableContext_ = value;
|
|
|
|
}
|
|
|
|
|
2024-02-17 11:37:54 +00:00
|
|
|
bool IsEnableContext() const
|
2023-12-19 12:41:49 +00:00
|
|
|
{
|
|
|
|
return enableContext_;
|
|
|
|
}
|
|
|
|
|
2022-10-11 06:32:15 +00:00
|
|
|
void SetEnablePrintExecuteTime(bool value)
|
|
|
|
{
|
|
|
|
enablePrintExecuteTime_ = value;
|
|
|
|
}
|
|
|
|
|
2024-02-17 11:37:54 +00:00
|
|
|
bool IsEnablePrintExecuteTime() const
|
2022-10-11 06:32:15 +00:00
|
|
|
{
|
|
|
|
return enablePrintExecuteTime_;
|
|
|
|
}
|
|
|
|
|
2023-12-18 07:57:47 +00:00
|
|
|
void SetEnableElementsKind(bool value)
|
|
|
|
{
|
|
|
|
enableElementsKind_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableElementsKind() const
|
|
|
|
{
|
|
|
|
return enableElementsKind_;
|
|
|
|
}
|
|
|
|
|
2022-10-17 09:02:45 +00:00
|
|
|
void SetEnablePGOProfiler(bool value)
|
2022-10-20 07:49:28 +00:00
|
|
|
{
|
2022-10-17 09:02:45 +00:00
|
|
|
enablePGOProfiler_ = value;
|
2022-10-20 07:49:28 +00:00
|
|
|
}
|
|
|
|
|
2022-10-17 09:02:45 +00:00
|
|
|
bool IsEnablePGOProfiler() const
|
2022-10-20 07:49:28 +00:00
|
|
|
{
|
2022-10-17 09:02:45 +00:00
|
|
|
return enablePGOProfiler_;
|
|
|
|
}
|
|
|
|
|
|
|
|
uint32_t GetPGOHotnessThreshold() const
|
|
|
|
{
|
|
|
|
return pgoHotnessThreshold_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetPGOHotnessThreshold(uint32_t threshold)
|
|
|
|
{
|
|
|
|
pgoHotnessThreshold_ = threshold;
|
|
|
|
}
|
|
|
|
|
2023-09-22 09:16:17 +00:00
|
|
|
uint32_t GetPGOSaveMinInterval() const
|
|
|
|
{
|
|
|
|
return pgoSaveMinInterval_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetPGOSaveMinInterval(uint32_t value)
|
|
|
|
{
|
|
|
|
pgoSaveMinInterval_ = value;
|
|
|
|
}
|
|
|
|
|
2022-10-17 09:02:45 +00:00
|
|
|
std::string GetPGOProfilerPath() const
|
|
|
|
{
|
|
|
|
return pgoProfilerPath_;
|
|
|
|
}
|
|
|
|
|
2024-06-07 08:51:28 +00:00
|
|
|
void SetEnableBaselinePgo(bool value)
|
|
|
|
{
|
|
|
|
enableBaselinePgo_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableBaselinePgo() const
|
|
|
|
{
|
|
|
|
return enableBaselinePgo_;
|
|
|
|
}
|
|
|
|
|
2023-02-21 11:31:52 +00:00
|
|
|
void SetPGOProfilerPath(const std::string& value)
|
2022-10-17 09:02:45 +00:00
|
|
|
{
|
2023-02-21 11:31:52 +00:00
|
|
|
pgoProfilerPath_ = panda::os::file::File::GetExtendedFilePath(value);
|
2022-10-20 07:49:28 +00:00
|
|
|
}
|
|
|
|
|
2023-05-24 09:39:27 +00:00
|
|
|
bool IsPGOProfilerPathEmpty() const
|
|
|
|
{
|
|
|
|
return pgoProfilerPath_.empty();
|
|
|
|
}
|
|
|
|
|
2022-09-17 07:56:09 +00:00
|
|
|
void SetEnableTypeLowering(bool value)
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
enableTypeLowering_ = value;
|
2022-09-17 07:56:09 +00:00
|
|
|
}
|
|
|
|
|
2023-08-03 07:22:51 +00:00
|
|
|
bool IsEnableArrayBoundsCheckElimination() const
|
|
|
|
{
|
|
|
|
return enableArrayBoundsCheckElimination_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetEnableArrayBoundsCheckElimination(bool value)
|
|
|
|
{
|
|
|
|
enableArrayBoundsCheckElimination_ = value;
|
|
|
|
}
|
|
|
|
|
2022-09-17 07:56:09 +00:00
|
|
|
bool IsEnableTypeLowering() const
|
|
|
|
{
|
2022-09-20 08:00:16 +00:00
|
|
|
return enableTypeLowering_;
|
2022-09-17 07:56:09 +00:00
|
|
|
}
|
|
|
|
|
2023-04-07 08:51:43 +00:00
|
|
|
void SetEnableEarlyElimination(bool value)
|
|
|
|
{
|
|
|
|
enableEarlyElimination_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableEarlyElimination() const
|
|
|
|
{
|
|
|
|
return enableEarlyElimination_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetEnableLaterElimination(bool value)
|
|
|
|
{
|
|
|
|
enableLaterElimination_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableLaterElimination() const
|
|
|
|
{
|
|
|
|
return enableLaterElimination_;
|
|
|
|
}
|
|
|
|
|
2023-10-24 12:36:58 +00:00
|
|
|
void SetEnableInstrcutionCombine(bool value)
|
|
|
|
{
|
|
|
|
enableInstrcutionCombine = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableInstrcutionCombine() const
|
|
|
|
{
|
|
|
|
return enableInstrcutionCombine;
|
|
|
|
}
|
|
|
|
|
2023-04-07 08:51:43 +00:00
|
|
|
void SetEnableValueNumbering(bool value)
|
|
|
|
{
|
|
|
|
enableValueNumbering_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableValueNumbering() const
|
|
|
|
{
|
|
|
|
return enableValueNumbering_;
|
|
|
|
}
|
|
|
|
|
2023-12-09 01:13:27 +00:00
|
|
|
void SetEnableJIT(bool value)
|
|
|
|
{
|
enable baseline compiler
add baseline builtins
Change-Id: Ib8d7c392c62e21eab19b17e45c0fafb499cbbed9
support running baseline compiler by option --compiler-force-baseline-compile-main=true
Change-Id: I7c7337faf9fad39ccffb2de28d46403e2f6cb22b
baseline jit part3
Change-Id: I36e8dd6a6fa6fffb738029a8620bbcd01df1e017
baseline part4
Change-Id: Ib45bcf7255a85aa48f864a6021adf819927e6a13
baseline part5 move baseline into compiler folder
Change-Id: Ia8781c95ae00c4f300e7267a6da0078b5d04e4c8
!185 support BaselinePrologue
* support BaselinePrologue part3
* support BaselinePrologue part2
* support BaselinePrologue
!187 [BaselineJit] support load baseline builtins
* [BaselineJit]support load baseline builtins
!186[BaselineJIT] workaround for baselinejit support install code
* install code part3
* install code part2
* baseline jit support intall code
!188 [BaselineJit] support CallBuiltin
* [BaselineJit] baseline support CallBuiltin
!189 [BaselineJIT]implement StackOffset class
* [BaselineJIT]implement StackOffset class
!190 [BaselineJIT]refactor BaselineAssembler and MacroAssembler
* [BaselineJIT]refactor BaselineAssembler and MacroAssembler
!191 [BaselineJIT] refactor class BaselineCompiler
* [BaselineJIT] refactor class BaselineCompiler
!192 [BaselineJIT] callbuiltin support new parameter type
new parameter type: int32_t,SpecialParameter,VirtualRegister
!193 [BaselineJIT]modify BaselineLoadObjByName function
* [BaselineJIT]modify BaselineLoadObjByName function
!194 [BaselineJIT] support new builtins
* [BaselineJIT] add BaselineTryLdGLobalByNameImm8ID16, BaselineStToGlobalRecordImm16ID16, BaselineLdaStrID16
!196 [BaselineJIT]bugfix for BaselinePrologue, align the rsp
* [BaselineJIT]bugfix for BaselinePrologue, align the rsp
!197 [BaselineJIT]bugfix for StackOffsetDescriptor
* [BaselineJIT]bugfix for StackOffsetDescriptor
!198 [BaselineJIT]workaround for helloworld testcase, helloworld can run successfully
* workaround for helloworld testcase, helloworld can run successfully
!200 [BaselineJIT]adapt profile collection
* [BaselineJIT]adapt profile collection
!201 [BaselineJIT]refactor baseline jit
* [BaselineJIT]refactor baseline jit
!203 [BaselineJIT]support trigger BaselineJITCompile and call baselinecode async
* [BaselineJIT]support trigger BaselineJITCompile and call baselinecode async
!202 [BaselineJIT]enable update hotness
* [BaselineJIT]enable update hotness
!205 [BaselineJIT]adapt JSCallDispatch interface
* [BaselineJIT]adapt JSCallDispatch interface
Change-Id: I4efce4346f985c7e074d7fc4bbfe3b081272e950
!195 [Baseline JIT] bytecode to builtin funs
* !206 enable bytecode builtins and call CHECK_PENDING_EXCEPTION
* [Baseline JIT] builtins:StobjbynameImm9Id16V8,StobjbynameImm16Id16V8,S…
* [Baseline JIT] builtins:CopyrestargsImm8,LdlexvarImm4Imm4,StlexvarImm4…
* [Baseline JIT] builtins: LdsuperbyvalueImm8V8,LdsuperbyvalueImm16V8,St…
* [Baseline JIT] builtins: DelobjpropV8,AsyncfunctionawaituncaughtV8,Cop…
* !204 enable bytecode builtins
* [Baseline JIT] builtins: DefineclasswithbufferImm8Id16Id16Imm16V8,Defi…
* [Baseline JIT] builtins: LdthisbynameImm8Id16,Definegettersetterbyval…
* [Baseline JIT] builtins: Callarg0Imm8,SupercallspreadImm8V8,ApplyImm8V…
* !199 enable bytecode builtin func
* [Baseline JIT] builtins: StrictnoteqImm8V8,StricteqImm8V8,Istrue,Isfal…
* [Baseline JIT] builtins: NegImm8,NotImm8,IncImm8,DecImm8,IsinImm8V8,In…
* [Baseline JIT] builtins: And2Imm8V8,Or2Imm8V8,Xor2Imm8V8,ExpImm8V8,Typ…
* [Baseline JIT] builtins:LessImm8V8,LesseqImm8V8,GreaterImm8V8,Greatere…
* [Baseline JIT] builtins:Add2Imm8V8,SUB2_IMM8_V8,MUL2_IMM8_V8,DIV2_IMM8…
* [Baseline JIT] builtins:CreateobjectwithbufferImm8Id16,Createobjectwit…
* [Baseline JIT]builtins:Createemptyobject,CreateemptyarrayImm8,Createem…
* [Baseline JIT] builtins:GetiteratorImm16,Asyncfunctionenter,Createasyn…
* [Baseline JIT] builtins:ldsymbol,ldglobal,Poplexenv,Getunmappedargs,Ge…
* [BaselineJIT] builtins: add base class
!209 handle opcode in baseline compiler
* handle opcode in baseline compiler
!210 [baseline jit]: add baseline stub call signature target kind info
* [baseline jit]: add baseline stub call signature target kind info
!212 [BaselineJIT]baseline builtin bugfix
* [BaselineJIT]baseline builtin bugfix
!207 [BaselineJIT]support BaselineBuiltinFrame
* [BaselineJIT]support BaselineBuiltinFrame
!214 [BaselineJIT]baseline builtin bugfix of using JSCallDispatch
* [BaselineJIT]baseline builtin bugfix JSCallDispatch
Change-Id: Id67b991df5dee753a38c284234d15b02f0d8a091
!215 [BaselineJIT]bugfix for StackOffsetDescriptor
* [BaselineJIT]bugfix for StackOffsetDescriptor
!216 [baseline jit]update bytecode builtins
* [baseline jit]update bytecode builtins
!213 [BaselineJIT]support BaselineReturn and BaselineReturnundefined
* [BaselineJIT]support BaselineReturn and BaselineReturnundefined
!218 [BaselineJIT]baseline builtin
* [BaselineJIT]baseline builtin:ldfunction,ldthis,asyncgeneratorresolvev…
!217 parse baseline-jit bytecode v1.0
* parse bytecode in baseline-jit
!220 [BaselineJIT]baseline refactor ParameterIndex
* [BaselineJIT]baseline refactor ParameterIndex
!223 [BaselineJIT]get function and method from stack, avoiding method is used after call
* [BaselineJIT]get function and method from stack, avoiding method is us…
!224 [BaselineJIT]bugfix for compiling x64.release
* [BaselineJIT]bugfix for compiling x64.release
!226 [BaselineJIT] adapt gc for BASELINE_BUILTIN_FRAME type
* [BaselineJIT]adapt gc for BASELINE_BUILTIN_FRAME type
!222 [BaselineJIT] parse baseline builtin args
* [BaselineJIT] parse baseline builtin args:part 2
* [BaselineJIT] parse baseline builtin args
!229 parse baseline-jit bytecode v2.0
* [BaselineJIT] parse bytecode v2.0
!230 [BaselineJIT] remove including undefined_function file
* [BaselineJIT] remove including undefined_function file
!228 handle byte opcode of jmp v2
* [baseline jit]handle opcode of jmp V2
[BaselineJIT]rebase bugfix
Change-Id: I078298849139317dfa89fb139979c1b7d938b344
!231 [BaselineJIT] fix bugs about reading bytecode
* [BaselineJIT] fix bugs about read bytecode
!232 [BaselineJIT] fix bug about processing arguments in stub
* [BaselineJIT] fix bug about processing argument in baseline-stubs
!233 handle int64_t type in CallBuiltin
* [baseline jit]handle int64_t type in CallBuiltin
!234 [BaselineJIT] fix bug for StToGlobalRecordImm16ID16
* [BaselineJIT] fix bug for StToGlobalRecordImm16ID16
!235 [BaselineJIT] fix bugs about args type
* [BaselineJIT] fix type of args that passing to builtins
!236 [BaselineJIT] do not pass constpool to builtins
* [BaselineJIT] do not passing constpool to builtin
Change-Id: I8c46d70527a3fedd841d28ac1908a02d4a66edeb
!237 [baselineJit]Bugfix for sp used in JSCallDispatch and incorretc type
* [baselineJit]Bugfix for sp used in JSCallDispatch and incorretc type
Change-Id: I3f42ecd06266a20b2b145cfe98bcbd97a2848bab
[BaselineJIT] dump_test bugfix
Change-Id: I97d21960ca98cd1a6fc9b1e81b647ff9d8d5d0c2
[BaselineJIT]codecheck fix
Change-Id: I93eb02e45b70f4a5bfee84fec0c8e2cdc765d348
code check bugfix part2
Change-Id: I8680dd2c098193705709691fa78e8e6f3ad8cd6c
bugfix for review
Change-Id: I49b28e109530b9f8b403ba22ba39948e02834021
[BaselineJIT]change file folder
Change-Id: I1f46110a804f17270badcff7cdeb2058ca164161
[BaselineJIT]bugfix for review part2
Change-Id: I190406652697f9b17ac6c84dd706262046dbb5f7
!238 [BaselineJIT] fix more than 6 args builtins
* [BaselineJIT] fix more than 6 args builtins
!239 [BaselineJIT] fix bug in parsing CALLTHISRANGE_IMM8_IMM8_V8
* [BaselineJIT] fix bug in parsing CALLTHISRANGE_IMM8_IMM8_V8
!240 [BaselineJIT] fix bug and add NewobjrangeImm8Imm8V8,NewobjrangeImm16Imm8V8
* [BaselineJIT] fix bug and add NewobjrangeImm8Imm8V8,NewobjrangeImm16Imm8V8
!241 [BaselineJIT] fix bug of ldnan, ldinfinity
* [BaselineJIT] fix bug of ldnan, ldinfinity
!242 [BaselineJIT] return JSCallDispatch result
* [BaselineJIT] return result of JSCallDispatch for baselinecode
!245 [BaselineJIT] fix builtins return value
* [BaselineJIT] fix builtins return value
!244 [BaselineJIT] save result to acc
* [BaselineJIT] save result to acc
!243 Bugfix for StlexvarImm4Imm4
* [baselineJit]Bugfix for StlexvarImm4Imm4
!246 [BaselineJIT] remove ldfunction
* [BaselineJIT] remove ldfunction
!248 [BaselineJIT] save result of DEFINECLASSWITHBUFFER_IMM8_ID16_ID16_IMM16_V8
* [BaselineJIT] fix return
!247 [baselineJit]Bugfix for Stlexvar and Ldlexvar
* [baselineJit]Bugfix for Stlexvar and Ldlexvar
!249 [BaselineJIT] Revert "!242[BaselineJIT] return JSCallDispatch result"
* Revert "!242 [BaselineJIT] return JSCallDispatch result"
!251 Bugfix for BaselineCreateobjectwithexcludedkeysImm8V8V8
* [baselineJit]Bugfix for BaselineCreateobjectwithexcludedkeysImm8V8V8
!252 [baselineJit]Bugfix for notException branch
* [baselineJit]Bugfix for notException branch
!250 [BaselineJIT] save result to acc in JSCallDispatch for baselinemethodcode
* [BaselineJIT] save result of JSCallDispatch to acc for baselinecode
!254 [BaselineJIT] fix type bug
* [BaselineJIT] fix type bug
!255 [BaselineJIT] fix bug of LDAI_IMM32
* [BaselineJIT] fix bug of LDAI_IMM32
!253 Bugfix for Poplexenv
* [baselineJit]Bugfix for Poplexenv
!256 [BaselineJIT] fix pc & refractor jscalldispatch for baseline-jit
* [BaselineJIT] fix pc of baseline-jit & refactor jscalldispatch for baseline-jit
!257 [BaselineJIT] replace indirectly jscalldispatch with jscalldispatchforbaseline
* [BaselineJIT] replace indirectly jscalldispatch with jscalldispatchforbaseline
!258 [BaselineJIT] fix using shl2 builtin bug
* [BaselineJIT] fix using shl2 builtin bug
!259 Bugfix and enable BaselineIstrue and BaselineIsFalse
* [baselineJit]Bugfix and enable BaselineIstrue and BaselineIsFalse
!260 [BaselineJIT] fix bug about passing FUNC parameter
* [BaselineJIT] fix bug about passing FUNC parameter
!261 [BaselineJIT] support passing parameters by stack and fix offset param bug
* [BaselineJIT] support passing parameters by stack and fix offset param bug
!263 [BaselineJIT] fix parameters bug of LdobjbyvalueImm16V8 & StobjbyvalueImm16V8V8
* [BaselineJIT] fix parameters bug of LdobjbyvalueImm16V8 & StobjbyvalueImm16V8V8
!262 Bugfix for jump offset
* [baselineJit]Bugfix for jump offset
!264 [BaselineJIT] fix intermediates v8 parameters bug
* [BaselineJIT] fix intermediates v8 parameters bug
Change-Id: I8bf4fdf7621770a1976925423de23693570365c9
!267 [BaselineJIT] fix bug of BaselineInstanceofImm8V8
* [BaselineJIT] fix bug of BaselineInstanceofImm8V8
!269 [BaselineJIT] support NEWOBJRANGE_IMM16_IMM8_V8 & fix calling DefineMethod runtimeStub
* [BaselineJIT] support NEWOBJRANGE_IMM16_IMM8_V8 & fix calling DefineMe…
!268 [BaselineJIT]support update hotness
* [BaselineJIT]enable update hotness part2
* [BaselineJIT]support update hotness
Change-Id: I24b02a9e015df7263b1e9d7210377add0bfc558c
CI bugfix
Change-Id: I2d5aef07a1f14b3c64585790cff99d64be0d6396
Signed-off-by: w00443755 <wangzhilei2@huawei.com>
2024-01-26 08:08:45 +00:00
|
|
|
enableFastJIT_ = value;
|
2023-12-09 01:13:27 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableJIT() const
|
|
|
|
{
|
enable baseline compiler
add baseline builtins
Change-Id: Ib8d7c392c62e21eab19b17e45c0fafb499cbbed9
support running baseline compiler by option --compiler-force-baseline-compile-main=true
Change-Id: I7c7337faf9fad39ccffb2de28d46403e2f6cb22b
baseline jit part3
Change-Id: I36e8dd6a6fa6fffb738029a8620bbcd01df1e017
baseline part4
Change-Id: Ib45bcf7255a85aa48f864a6021adf819927e6a13
baseline part5 move baseline into compiler folder
Change-Id: Ia8781c95ae00c4f300e7267a6da0078b5d04e4c8
!185 support BaselinePrologue
* support BaselinePrologue part3
* support BaselinePrologue part2
* support BaselinePrologue
!187 [BaselineJit] support load baseline builtins
* [BaselineJit]support load baseline builtins
!186[BaselineJIT] workaround for baselinejit support install code
* install code part3
* install code part2
* baseline jit support intall code
!188 [BaselineJit] support CallBuiltin
* [BaselineJit] baseline support CallBuiltin
!189 [BaselineJIT]implement StackOffset class
* [BaselineJIT]implement StackOffset class
!190 [BaselineJIT]refactor BaselineAssembler and MacroAssembler
* [BaselineJIT]refactor BaselineAssembler and MacroAssembler
!191 [BaselineJIT] refactor class BaselineCompiler
* [BaselineJIT] refactor class BaselineCompiler
!192 [BaselineJIT] callbuiltin support new parameter type
new parameter type: int32_t,SpecialParameter,VirtualRegister
!193 [BaselineJIT]modify BaselineLoadObjByName function
* [BaselineJIT]modify BaselineLoadObjByName function
!194 [BaselineJIT] support new builtins
* [BaselineJIT] add BaselineTryLdGLobalByNameImm8ID16, BaselineStToGlobalRecordImm16ID16, BaselineLdaStrID16
!196 [BaselineJIT]bugfix for BaselinePrologue, align the rsp
* [BaselineJIT]bugfix for BaselinePrologue, align the rsp
!197 [BaselineJIT]bugfix for StackOffsetDescriptor
* [BaselineJIT]bugfix for StackOffsetDescriptor
!198 [BaselineJIT]workaround for helloworld testcase, helloworld can run successfully
* workaround for helloworld testcase, helloworld can run successfully
!200 [BaselineJIT]adapt profile collection
* [BaselineJIT]adapt profile collection
!201 [BaselineJIT]refactor baseline jit
* [BaselineJIT]refactor baseline jit
!203 [BaselineJIT]support trigger BaselineJITCompile and call baselinecode async
* [BaselineJIT]support trigger BaselineJITCompile and call baselinecode async
!202 [BaselineJIT]enable update hotness
* [BaselineJIT]enable update hotness
!205 [BaselineJIT]adapt JSCallDispatch interface
* [BaselineJIT]adapt JSCallDispatch interface
Change-Id: I4efce4346f985c7e074d7fc4bbfe3b081272e950
!195 [Baseline JIT] bytecode to builtin funs
* !206 enable bytecode builtins and call CHECK_PENDING_EXCEPTION
* [Baseline JIT] builtins:StobjbynameImm9Id16V8,StobjbynameImm16Id16V8,S…
* [Baseline JIT] builtins:CopyrestargsImm8,LdlexvarImm4Imm4,StlexvarImm4…
* [Baseline JIT] builtins: LdsuperbyvalueImm8V8,LdsuperbyvalueImm16V8,St…
* [Baseline JIT] builtins: DelobjpropV8,AsyncfunctionawaituncaughtV8,Cop…
* !204 enable bytecode builtins
* [Baseline JIT] builtins: DefineclasswithbufferImm8Id16Id16Imm16V8,Defi…
* [Baseline JIT] builtins: LdthisbynameImm8Id16,Definegettersetterbyval…
* [Baseline JIT] builtins: Callarg0Imm8,SupercallspreadImm8V8,ApplyImm8V…
* !199 enable bytecode builtin func
* [Baseline JIT] builtins: StrictnoteqImm8V8,StricteqImm8V8,Istrue,Isfal…
* [Baseline JIT] builtins: NegImm8,NotImm8,IncImm8,DecImm8,IsinImm8V8,In…
* [Baseline JIT] builtins: And2Imm8V8,Or2Imm8V8,Xor2Imm8V8,ExpImm8V8,Typ…
* [Baseline JIT] builtins:LessImm8V8,LesseqImm8V8,GreaterImm8V8,Greatere…
* [Baseline JIT] builtins:Add2Imm8V8,SUB2_IMM8_V8,MUL2_IMM8_V8,DIV2_IMM8…
* [Baseline JIT] builtins:CreateobjectwithbufferImm8Id16,Createobjectwit…
* [Baseline JIT]builtins:Createemptyobject,CreateemptyarrayImm8,Createem…
* [Baseline JIT] builtins:GetiteratorImm16,Asyncfunctionenter,Createasyn…
* [Baseline JIT] builtins:ldsymbol,ldglobal,Poplexenv,Getunmappedargs,Ge…
* [BaselineJIT] builtins: add base class
!209 handle opcode in baseline compiler
* handle opcode in baseline compiler
!210 [baseline jit]: add baseline stub call signature target kind info
* [baseline jit]: add baseline stub call signature target kind info
!212 [BaselineJIT]baseline builtin bugfix
* [BaselineJIT]baseline builtin bugfix
!207 [BaselineJIT]support BaselineBuiltinFrame
* [BaselineJIT]support BaselineBuiltinFrame
!214 [BaselineJIT]baseline builtin bugfix of using JSCallDispatch
* [BaselineJIT]baseline builtin bugfix JSCallDispatch
Change-Id: Id67b991df5dee753a38c284234d15b02f0d8a091
!215 [BaselineJIT]bugfix for StackOffsetDescriptor
* [BaselineJIT]bugfix for StackOffsetDescriptor
!216 [baseline jit]update bytecode builtins
* [baseline jit]update bytecode builtins
!213 [BaselineJIT]support BaselineReturn and BaselineReturnundefined
* [BaselineJIT]support BaselineReturn and BaselineReturnundefined
!218 [BaselineJIT]baseline builtin
* [BaselineJIT]baseline builtin:ldfunction,ldthis,asyncgeneratorresolvev…
!217 parse baseline-jit bytecode v1.0
* parse bytecode in baseline-jit
!220 [BaselineJIT]baseline refactor ParameterIndex
* [BaselineJIT]baseline refactor ParameterIndex
!223 [BaselineJIT]get function and method from stack, avoiding method is used after call
* [BaselineJIT]get function and method from stack, avoiding method is us…
!224 [BaselineJIT]bugfix for compiling x64.release
* [BaselineJIT]bugfix for compiling x64.release
!226 [BaselineJIT] adapt gc for BASELINE_BUILTIN_FRAME type
* [BaselineJIT]adapt gc for BASELINE_BUILTIN_FRAME type
!222 [BaselineJIT] parse baseline builtin args
* [BaselineJIT] parse baseline builtin args:part 2
* [BaselineJIT] parse baseline builtin args
!229 parse baseline-jit bytecode v2.0
* [BaselineJIT] parse bytecode v2.0
!230 [BaselineJIT] remove including undefined_function file
* [BaselineJIT] remove including undefined_function file
!228 handle byte opcode of jmp v2
* [baseline jit]handle opcode of jmp V2
[BaselineJIT]rebase bugfix
Change-Id: I078298849139317dfa89fb139979c1b7d938b344
!231 [BaselineJIT] fix bugs about reading bytecode
* [BaselineJIT] fix bugs about read bytecode
!232 [BaselineJIT] fix bug about processing arguments in stub
* [BaselineJIT] fix bug about processing argument in baseline-stubs
!233 handle int64_t type in CallBuiltin
* [baseline jit]handle int64_t type in CallBuiltin
!234 [BaselineJIT] fix bug for StToGlobalRecordImm16ID16
* [BaselineJIT] fix bug for StToGlobalRecordImm16ID16
!235 [BaselineJIT] fix bugs about args type
* [BaselineJIT] fix type of args that passing to builtins
!236 [BaselineJIT] do not pass constpool to builtins
* [BaselineJIT] do not passing constpool to builtin
Change-Id: I8c46d70527a3fedd841d28ac1908a02d4a66edeb
!237 [baselineJit]Bugfix for sp used in JSCallDispatch and incorretc type
* [baselineJit]Bugfix for sp used in JSCallDispatch and incorretc type
Change-Id: I3f42ecd06266a20b2b145cfe98bcbd97a2848bab
[BaselineJIT] dump_test bugfix
Change-Id: I97d21960ca98cd1a6fc9b1e81b647ff9d8d5d0c2
[BaselineJIT]codecheck fix
Change-Id: I93eb02e45b70f4a5bfee84fec0c8e2cdc765d348
code check bugfix part2
Change-Id: I8680dd2c098193705709691fa78e8e6f3ad8cd6c
bugfix for review
Change-Id: I49b28e109530b9f8b403ba22ba39948e02834021
[BaselineJIT]change file folder
Change-Id: I1f46110a804f17270badcff7cdeb2058ca164161
[BaselineJIT]bugfix for review part2
Change-Id: I190406652697f9b17ac6c84dd706262046dbb5f7
!238 [BaselineJIT] fix more than 6 args builtins
* [BaselineJIT] fix more than 6 args builtins
!239 [BaselineJIT] fix bug in parsing CALLTHISRANGE_IMM8_IMM8_V8
* [BaselineJIT] fix bug in parsing CALLTHISRANGE_IMM8_IMM8_V8
!240 [BaselineJIT] fix bug and add NewobjrangeImm8Imm8V8,NewobjrangeImm16Imm8V8
* [BaselineJIT] fix bug and add NewobjrangeImm8Imm8V8,NewobjrangeImm16Imm8V8
!241 [BaselineJIT] fix bug of ldnan, ldinfinity
* [BaselineJIT] fix bug of ldnan, ldinfinity
!242 [BaselineJIT] return JSCallDispatch result
* [BaselineJIT] return result of JSCallDispatch for baselinecode
!245 [BaselineJIT] fix builtins return value
* [BaselineJIT] fix builtins return value
!244 [BaselineJIT] save result to acc
* [BaselineJIT] save result to acc
!243 Bugfix for StlexvarImm4Imm4
* [baselineJit]Bugfix for StlexvarImm4Imm4
!246 [BaselineJIT] remove ldfunction
* [BaselineJIT] remove ldfunction
!248 [BaselineJIT] save result of DEFINECLASSWITHBUFFER_IMM8_ID16_ID16_IMM16_V8
* [BaselineJIT] fix return
!247 [baselineJit]Bugfix for Stlexvar and Ldlexvar
* [baselineJit]Bugfix for Stlexvar and Ldlexvar
!249 [BaselineJIT] Revert "!242[BaselineJIT] return JSCallDispatch result"
* Revert "!242 [BaselineJIT] return JSCallDispatch result"
!251 Bugfix for BaselineCreateobjectwithexcludedkeysImm8V8V8
* [baselineJit]Bugfix for BaselineCreateobjectwithexcludedkeysImm8V8V8
!252 [baselineJit]Bugfix for notException branch
* [baselineJit]Bugfix for notException branch
!250 [BaselineJIT] save result to acc in JSCallDispatch for baselinemethodcode
* [BaselineJIT] save result of JSCallDispatch to acc for baselinecode
!254 [BaselineJIT] fix type bug
* [BaselineJIT] fix type bug
!255 [BaselineJIT] fix bug of LDAI_IMM32
* [BaselineJIT] fix bug of LDAI_IMM32
!253 Bugfix for Poplexenv
* [baselineJit]Bugfix for Poplexenv
!256 [BaselineJIT] fix pc & refractor jscalldispatch for baseline-jit
* [BaselineJIT] fix pc of baseline-jit & refactor jscalldispatch for baseline-jit
!257 [BaselineJIT] replace indirectly jscalldispatch with jscalldispatchforbaseline
* [BaselineJIT] replace indirectly jscalldispatch with jscalldispatchforbaseline
!258 [BaselineJIT] fix using shl2 builtin bug
* [BaselineJIT] fix using shl2 builtin bug
!259 Bugfix and enable BaselineIstrue and BaselineIsFalse
* [baselineJit]Bugfix and enable BaselineIstrue and BaselineIsFalse
!260 [BaselineJIT] fix bug about passing FUNC parameter
* [BaselineJIT] fix bug about passing FUNC parameter
!261 [BaselineJIT] support passing parameters by stack and fix offset param bug
* [BaselineJIT] support passing parameters by stack and fix offset param bug
!263 [BaselineJIT] fix parameters bug of LdobjbyvalueImm16V8 & StobjbyvalueImm16V8V8
* [BaselineJIT] fix parameters bug of LdobjbyvalueImm16V8 & StobjbyvalueImm16V8V8
!262 Bugfix for jump offset
* [baselineJit]Bugfix for jump offset
!264 [BaselineJIT] fix intermediates v8 parameters bug
* [BaselineJIT] fix intermediates v8 parameters bug
Change-Id: I8bf4fdf7621770a1976925423de23693570365c9
!267 [BaselineJIT] fix bug of BaselineInstanceofImm8V8
* [BaselineJIT] fix bug of BaselineInstanceofImm8V8
!269 [BaselineJIT] support NEWOBJRANGE_IMM16_IMM8_V8 & fix calling DefineMethod runtimeStub
* [BaselineJIT] support NEWOBJRANGE_IMM16_IMM8_V8 & fix calling DefineMe…
!268 [BaselineJIT]support update hotness
* [BaselineJIT]enable update hotness part2
* [BaselineJIT]support update hotness
Change-Id: I24b02a9e015df7263b1e9d7210377add0bfc558c
CI bugfix
Change-Id: I2d5aef07a1f14b3c64585790cff99d64be0d6396
Signed-off-by: w00443755 <wangzhilei2@huawei.com>
2024-01-26 08:08:45 +00:00
|
|
|
return enableFastJIT_;
|
2023-12-09 01:13:27 +00:00
|
|
|
}
|
|
|
|
|
2024-03-21 13:32:14 +00:00
|
|
|
void SetEnableAPPJIT(bool value)
|
|
|
|
{
|
|
|
|
enableAPPJIT_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableAPPJIT() const
|
|
|
|
{
|
|
|
|
return enableAPPJIT_;
|
|
|
|
}
|
|
|
|
|
2024-04-08 07:48:16 +00:00
|
|
|
void SetEnableJitFrame(bool value)
|
|
|
|
{
|
|
|
|
enableJitFrame_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableJitFrame() const
|
|
|
|
{
|
|
|
|
return enableJitFrame_;
|
|
|
|
}
|
|
|
|
|
2024-05-11 04:31:04 +00:00
|
|
|
bool IsEnableJitDfxDump() const
|
|
|
|
{
|
|
|
|
return isEnableJitDfxDump_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetEnableJitDfxDump(bool value)
|
|
|
|
{
|
|
|
|
isEnableJitDfxDump_ = value;
|
|
|
|
}
|
|
|
|
|
2024-03-19 06:57:29 +00:00
|
|
|
void SetEnableOSR(bool value)
|
|
|
|
{
|
|
|
|
enableOSR_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableOSR() const
|
|
|
|
{
|
|
|
|
return enableOSR_;
|
|
|
|
}
|
|
|
|
|
2023-12-09 01:13:27 +00:00
|
|
|
void SetJitHotnessThreshold(uint16_t value)
|
|
|
|
{
|
|
|
|
jitHotnessThreshold_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
uint16_t GetJitHotnessThreshold() const
|
|
|
|
{
|
|
|
|
return jitHotnessThreshold_;
|
|
|
|
}
|
|
|
|
|
2024-04-22 07:38:21 +00:00
|
|
|
void SetJitCallThreshold(uint8_t value)
|
|
|
|
{
|
|
|
|
jitCallThreshold_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
uint8_t GetJitCallThreshold() const
|
|
|
|
{
|
|
|
|
return jitCallThreshold_;
|
|
|
|
}
|
|
|
|
|
2024-03-19 06:57:29 +00:00
|
|
|
void SetOsrHotnessThreshold(uint16_t value)
|
|
|
|
{
|
|
|
|
osrHotnessThreshold_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
uint16_t GetOsrHotnessThreshold() const
|
|
|
|
{
|
|
|
|
return osrHotnessThreshold_;
|
|
|
|
}
|
|
|
|
|
2023-12-09 01:13:27 +00:00
|
|
|
void SetForceJitCompileMain(bool value)
|
|
|
|
{
|
|
|
|
forceJitCompileMain_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableForceJitCompileMain()
|
|
|
|
{
|
|
|
|
return forceJitCompileMain_;
|
|
|
|
}
|
|
|
|
|
enable baseline compiler
add baseline builtins
Change-Id: Ib8d7c392c62e21eab19b17e45c0fafb499cbbed9
support running baseline compiler by option --compiler-force-baseline-compile-main=true
Change-Id: I7c7337faf9fad39ccffb2de28d46403e2f6cb22b
baseline jit part3
Change-Id: I36e8dd6a6fa6fffb738029a8620bbcd01df1e017
baseline part4
Change-Id: Ib45bcf7255a85aa48f864a6021adf819927e6a13
baseline part5 move baseline into compiler folder
Change-Id: Ia8781c95ae00c4f300e7267a6da0078b5d04e4c8
!185 support BaselinePrologue
* support BaselinePrologue part3
* support BaselinePrologue part2
* support BaselinePrologue
!187 [BaselineJit] support load baseline builtins
* [BaselineJit]support load baseline builtins
!186[BaselineJIT] workaround for baselinejit support install code
* install code part3
* install code part2
* baseline jit support intall code
!188 [BaselineJit] support CallBuiltin
* [BaselineJit] baseline support CallBuiltin
!189 [BaselineJIT]implement StackOffset class
* [BaselineJIT]implement StackOffset class
!190 [BaselineJIT]refactor BaselineAssembler and MacroAssembler
* [BaselineJIT]refactor BaselineAssembler and MacroAssembler
!191 [BaselineJIT] refactor class BaselineCompiler
* [BaselineJIT] refactor class BaselineCompiler
!192 [BaselineJIT] callbuiltin support new parameter type
new parameter type: int32_t,SpecialParameter,VirtualRegister
!193 [BaselineJIT]modify BaselineLoadObjByName function
* [BaselineJIT]modify BaselineLoadObjByName function
!194 [BaselineJIT] support new builtins
* [BaselineJIT] add BaselineTryLdGLobalByNameImm8ID16, BaselineStToGlobalRecordImm16ID16, BaselineLdaStrID16
!196 [BaselineJIT]bugfix for BaselinePrologue, align the rsp
* [BaselineJIT]bugfix for BaselinePrologue, align the rsp
!197 [BaselineJIT]bugfix for StackOffsetDescriptor
* [BaselineJIT]bugfix for StackOffsetDescriptor
!198 [BaselineJIT]workaround for helloworld testcase, helloworld can run successfully
* workaround for helloworld testcase, helloworld can run successfully
!200 [BaselineJIT]adapt profile collection
* [BaselineJIT]adapt profile collection
!201 [BaselineJIT]refactor baseline jit
* [BaselineJIT]refactor baseline jit
!203 [BaselineJIT]support trigger BaselineJITCompile and call baselinecode async
* [BaselineJIT]support trigger BaselineJITCompile and call baselinecode async
!202 [BaselineJIT]enable update hotness
* [BaselineJIT]enable update hotness
!205 [BaselineJIT]adapt JSCallDispatch interface
* [BaselineJIT]adapt JSCallDispatch interface
Change-Id: I4efce4346f985c7e074d7fc4bbfe3b081272e950
!195 [Baseline JIT] bytecode to builtin funs
* !206 enable bytecode builtins and call CHECK_PENDING_EXCEPTION
* [Baseline JIT] builtins:StobjbynameImm9Id16V8,StobjbynameImm16Id16V8,S…
* [Baseline JIT] builtins:CopyrestargsImm8,LdlexvarImm4Imm4,StlexvarImm4…
* [Baseline JIT] builtins: LdsuperbyvalueImm8V8,LdsuperbyvalueImm16V8,St…
* [Baseline JIT] builtins: DelobjpropV8,AsyncfunctionawaituncaughtV8,Cop…
* !204 enable bytecode builtins
* [Baseline JIT] builtins: DefineclasswithbufferImm8Id16Id16Imm16V8,Defi…
* [Baseline JIT] builtins: LdthisbynameImm8Id16,Definegettersetterbyval…
* [Baseline JIT] builtins: Callarg0Imm8,SupercallspreadImm8V8,ApplyImm8V…
* !199 enable bytecode builtin func
* [Baseline JIT] builtins: StrictnoteqImm8V8,StricteqImm8V8,Istrue,Isfal…
* [Baseline JIT] builtins: NegImm8,NotImm8,IncImm8,DecImm8,IsinImm8V8,In…
* [Baseline JIT] builtins: And2Imm8V8,Or2Imm8V8,Xor2Imm8V8,ExpImm8V8,Typ…
* [Baseline JIT] builtins:LessImm8V8,LesseqImm8V8,GreaterImm8V8,Greatere…
* [Baseline JIT] builtins:Add2Imm8V8,SUB2_IMM8_V8,MUL2_IMM8_V8,DIV2_IMM8…
* [Baseline JIT] builtins:CreateobjectwithbufferImm8Id16,Createobjectwit…
* [Baseline JIT]builtins:Createemptyobject,CreateemptyarrayImm8,Createem…
* [Baseline JIT] builtins:GetiteratorImm16,Asyncfunctionenter,Createasyn…
* [Baseline JIT] builtins:ldsymbol,ldglobal,Poplexenv,Getunmappedargs,Ge…
* [BaselineJIT] builtins: add base class
!209 handle opcode in baseline compiler
* handle opcode in baseline compiler
!210 [baseline jit]: add baseline stub call signature target kind info
* [baseline jit]: add baseline stub call signature target kind info
!212 [BaselineJIT]baseline builtin bugfix
* [BaselineJIT]baseline builtin bugfix
!207 [BaselineJIT]support BaselineBuiltinFrame
* [BaselineJIT]support BaselineBuiltinFrame
!214 [BaselineJIT]baseline builtin bugfix of using JSCallDispatch
* [BaselineJIT]baseline builtin bugfix JSCallDispatch
Change-Id: Id67b991df5dee753a38c284234d15b02f0d8a091
!215 [BaselineJIT]bugfix for StackOffsetDescriptor
* [BaselineJIT]bugfix for StackOffsetDescriptor
!216 [baseline jit]update bytecode builtins
* [baseline jit]update bytecode builtins
!213 [BaselineJIT]support BaselineReturn and BaselineReturnundefined
* [BaselineJIT]support BaselineReturn and BaselineReturnundefined
!218 [BaselineJIT]baseline builtin
* [BaselineJIT]baseline builtin:ldfunction,ldthis,asyncgeneratorresolvev…
!217 parse baseline-jit bytecode v1.0
* parse bytecode in baseline-jit
!220 [BaselineJIT]baseline refactor ParameterIndex
* [BaselineJIT]baseline refactor ParameterIndex
!223 [BaselineJIT]get function and method from stack, avoiding method is used after call
* [BaselineJIT]get function and method from stack, avoiding method is us…
!224 [BaselineJIT]bugfix for compiling x64.release
* [BaselineJIT]bugfix for compiling x64.release
!226 [BaselineJIT] adapt gc for BASELINE_BUILTIN_FRAME type
* [BaselineJIT]adapt gc for BASELINE_BUILTIN_FRAME type
!222 [BaselineJIT] parse baseline builtin args
* [BaselineJIT] parse baseline builtin args:part 2
* [BaselineJIT] parse baseline builtin args
!229 parse baseline-jit bytecode v2.0
* [BaselineJIT] parse bytecode v2.0
!230 [BaselineJIT] remove including undefined_function file
* [BaselineJIT] remove including undefined_function file
!228 handle byte opcode of jmp v2
* [baseline jit]handle opcode of jmp V2
[BaselineJIT]rebase bugfix
Change-Id: I078298849139317dfa89fb139979c1b7d938b344
!231 [BaselineJIT] fix bugs about reading bytecode
* [BaselineJIT] fix bugs about read bytecode
!232 [BaselineJIT] fix bug about processing arguments in stub
* [BaselineJIT] fix bug about processing argument in baseline-stubs
!233 handle int64_t type in CallBuiltin
* [baseline jit]handle int64_t type in CallBuiltin
!234 [BaselineJIT] fix bug for StToGlobalRecordImm16ID16
* [BaselineJIT] fix bug for StToGlobalRecordImm16ID16
!235 [BaselineJIT] fix bugs about args type
* [BaselineJIT] fix type of args that passing to builtins
!236 [BaselineJIT] do not pass constpool to builtins
* [BaselineJIT] do not passing constpool to builtin
Change-Id: I8c46d70527a3fedd841d28ac1908a02d4a66edeb
!237 [baselineJit]Bugfix for sp used in JSCallDispatch and incorretc type
* [baselineJit]Bugfix for sp used in JSCallDispatch and incorretc type
Change-Id: I3f42ecd06266a20b2b145cfe98bcbd97a2848bab
[BaselineJIT] dump_test bugfix
Change-Id: I97d21960ca98cd1a6fc9b1e81b647ff9d8d5d0c2
[BaselineJIT]codecheck fix
Change-Id: I93eb02e45b70f4a5bfee84fec0c8e2cdc765d348
code check bugfix part2
Change-Id: I8680dd2c098193705709691fa78e8e6f3ad8cd6c
bugfix for review
Change-Id: I49b28e109530b9f8b403ba22ba39948e02834021
[BaselineJIT]change file folder
Change-Id: I1f46110a804f17270badcff7cdeb2058ca164161
[BaselineJIT]bugfix for review part2
Change-Id: I190406652697f9b17ac6c84dd706262046dbb5f7
!238 [BaselineJIT] fix more than 6 args builtins
* [BaselineJIT] fix more than 6 args builtins
!239 [BaselineJIT] fix bug in parsing CALLTHISRANGE_IMM8_IMM8_V8
* [BaselineJIT] fix bug in parsing CALLTHISRANGE_IMM8_IMM8_V8
!240 [BaselineJIT] fix bug and add NewobjrangeImm8Imm8V8,NewobjrangeImm16Imm8V8
* [BaselineJIT] fix bug and add NewobjrangeImm8Imm8V8,NewobjrangeImm16Imm8V8
!241 [BaselineJIT] fix bug of ldnan, ldinfinity
* [BaselineJIT] fix bug of ldnan, ldinfinity
!242 [BaselineJIT] return JSCallDispatch result
* [BaselineJIT] return result of JSCallDispatch for baselinecode
!245 [BaselineJIT] fix builtins return value
* [BaselineJIT] fix builtins return value
!244 [BaselineJIT] save result to acc
* [BaselineJIT] save result to acc
!243 Bugfix for StlexvarImm4Imm4
* [baselineJit]Bugfix for StlexvarImm4Imm4
!246 [BaselineJIT] remove ldfunction
* [BaselineJIT] remove ldfunction
!248 [BaselineJIT] save result of DEFINECLASSWITHBUFFER_IMM8_ID16_ID16_IMM16_V8
* [BaselineJIT] fix return
!247 [baselineJit]Bugfix for Stlexvar and Ldlexvar
* [baselineJit]Bugfix for Stlexvar and Ldlexvar
!249 [BaselineJIT] Revert "!242[BaselineJIT] return JSCallDispatch result"
* Revert "!242 [BaselineJIT] return JSCallDispatch result"
!251 Bugfix for BaselineCreateobjectwithexcludedkeysImm8V8V8
* [baselineJit]Bugfix for BaselineCreateobjectwithexcludedkeysImm8V8V8
!252 [baselineJit]Bugfix for notException branch
* [baselineJit]Bugfix for notException branch
!250 [BaselineJIT] save result to acc in JSCallDispatch for baselinemethodcode
* [BaselineJIT] save result of JSCallDispatch to acc for baselinecode
!254 [BaselineJIT] fix type bug
* [BaselineJIT] fix type bug
!255 [BaselineJIT] fix bug of LDAI_IMM32
* [BaselineJIT] fix bug of LDAI_IMM32
!253 Bugfix for Poplexenv
* [baselineJit]Bugfix for Poplexenv
!256 [BaselineJIT] fix pc & refractor jscalldispatch for baseline-jit
* [BaselineJIT] fix pc of baseline-jit & refactor jscalldispatch for baseline-jit
!257 [BaselineJIT] replace indirectly jscalldispatch with jscalldispatchforbaseline
* [BaselineJIT] replace indirectly jscalldispatch with jscalldispatchforbaseline
!258 [BaselineJIT] fix using shl2 builtin bug
* [BaselineJIT] fix using shl2 builtin bug
!259 Bugfix and enable BaselineIstrue and BaselineIsFalse
* [baselineJit]Bugfix and enable BaselineIstrue and BaselineIsFalse
!260 [BaselineJIT] fix bug about passing FUNC parameter
* [BaselineJIT] fix bug about passing FUNC parameter
!261 [BaselineJIT] support passing parameters by stack and fix offset param bug
* [BaselineJIT] support passing parameters by stack and fix offset param bug
!263 [BaselineJIT] fix parameters bug of LdobjbyvalueImm16V8 & StobjbyvalueImm16V8V8
* [BaselineJIT] fix parameters bug of LdobjbyvalueImm16V8 & StobjbyvalueImm16V8V8
!262 Bugfix for jump offset
* [baselineJit]Bugfix for jump offset
!264 [BaselineJIT] fix intermediates v8 parameters bug
* [BaselineJIT] fix intermediates v8 parameters bug
Change-Id: I8bf4fdf7621770a1976925423de23693570365c9
!267 [BaselineJIT] fix bug of BaselineInstanceofImm8V8
* [BaselineJIT] fix bug of BaselineInstanceofImm8V8
!269 [BaselineJIT] support NEWOBJRANGE_IMM16_IMM8_V8 & fix calling DefineMethod runtimeStub
* [BaselineJIT] support NEWOBJRANGE_IMM16_IMM8_V8 & fix calling DefineMe…
!268 [BaselineJIT]support update hotness
* [BaselineJIT]enable update hotness part2
* [BaselineJIT]support update hotness
Change-Id: I24b02a9e015df7263b1e9d7210377add0bfc558c
CI bugfix
Change-Id: I2d5aef07a1f14b3c64585790cff99d64be0d6396
Signed-off-by: w00443755 <wangzhilei2@huawei.com>
2024-01-26 08:08:45 +00:00
|
|
|
void SetEnableBaselineJIT(bool value)
|
|
|
|
{
|
|
|
|
enableBaselineJIT_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableBaselineJIT() const
|
|
|
|
{
|
|
|
|
return enableBaselineJIT_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetBaselineJitHotnessThreshold(uint16_t value)
|
|
|
|
{
|
|
|
|
baselineJitHotnessThreshold_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
uint16_t GetBaselineJitHotnessThreshold() const
|
|
|
|
{
|
|
|
|
return baselineJitHotnessThreshold_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetForceBaselineCompileMain(bool value)
|
|
|
|
{
|
|
|
|
forceBaselineCompileMain_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableForceBaselineCompileMain()
|
|
|
|
{
|
|
|
|
return forceBaselineCompileMain_;
|
|
|
|
}
|
|
|
|
|
2023-09-21 13:20:55 +00:00
|
|
|
void SetEnableNewValueNumbering(bool value)
|
|
|
|
{
|
|
|
|
enableNewValueNumbering_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableNewValueNumbering() const
|
|
|
|
{
|
|
|
|
return enableNewValueNumbering_;
|
|
|
|
}
|
|
|
|
|
2024-01-11 12:25:47 +00:00
|
|
|
void SetEnableOptString(bool value)
|
|
|
|
{
|
|
|
|
enableOptString_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableOptString() const
|
|
|
|
{
|
|
|
|
return enableOptString_;
|
|
|
|
}
|
|
|
|
|
2023-03-13 06:37:22 +00:00
|
|
|
void SetEnableOptInlining(bool value)
|
|
|
|
{
|
|
|
|
enableOptInlining_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableOptInlining() const
|
|
|
|
{
|
|
|
|
return enableOptInlining_;
|
|
|
|
}
|
|
|
|
|
2024-07-08 02:32:40 +00:00
|
|
|
void SetEnableTryCatchFunction(bool value)
|
|
|
|
{
|
|
|
|
enableTryCatchFunction_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableTryCatchFunction() const
|
|
|
|
{
|
|
|
|
return enableTryCatchFunction_;
|
|
|
|
}
|
|
|
|
|
2023-03-08 07:05:35 +00:00
|
|
|
void SetEnableOptPGOType(bool value)
|
|
|
|
{
|
|
|
|
enableOptPGOType_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableOptPGOType() const
|
|
|
|
{
|
|
|
|
return enableOptPGOType_;
|
|
|
|
}
|
|
|
|
|
2023-07-12 10:42:42 +00:00
|
|
|
void SetEnableOptTrackField(bool value)
|
|
|
|
{
|
|
|
|
enableOptTrackField_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableOptTrackField() const
|
|
|
|
{
|
|
|
|
return enableOptTrackField_;
|
|
|
|
}
|
|
|
|
|
2023-05-05 06:53:42 +00:00
|
|
|
uint32_t GetCompilerModuleMethods() const
|
|
|
|
{
|
|
|
|
return compilerModuleMethods_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetCompilerModuleMethods(uint32_t compilerModuleMethods)
|
|
|
|
{
|
|
|
|
compilerModuleMethods_ = compilerModuleMethods;
|
|
|
|
}
|
|
|
|
|
2022-11-25 08:51:55 +00:00
|
|
|
void SetTraceDeopt(bool value)
|
2022-11-25 06:44:53 +00:00
|
|
|
{
|
2022-11-28 08:16:35 +00:00
|
|
|
traceDeopt_ = value;
|
2022-11-25 06:44:53 +00:00
|
|
|
}
|
|
|
|
|
2022-11-25 08:51:55 +00:00
|
|
|
bool GetTraceDeopt() const
|
2022-11-25 06:44:53 +00:00
|
|
|
{
|
2022-11-25 08:51:55 +00:00
|
|
|
return traceDeopt_;
|
2022-11-25 06:44:53 +00:00
|
|
|
}
|
2022-12-13 11:30:54 +00:00
|
|
|
|
2023-02-06 07:31:06 +00:00
|
|
|
void SetDeoptThreshold(uint8_t value)
|
2022-12-13 11:30:54 +00:00
|
|
|
{
|
|
|
|
deoptThreshold_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
uint32_t GetDeoptThreshold() const
|
|
|
|
{
|
|
|
|
return deoptThreshold_;
|
|
|
|
}
|
2022-12-14 09:07:53 +00:00
|
|
|
|
2023-04-07 08:51:43 +00:00
|
|
|
void SetStressDeopt(bool value)
|
|
|
|
{
|
|
|
|
stressDeopt_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool GetStressDeopt() const
|
|
|
|
{
|
|
|
|
return stressDeopt_;
|
|
|
|
}
|
|
|
|
|
2024-04-01 03:40:18 +00:00
|
|
|
void SetDeviceState(bool value)
|
|
|
|
{
|
|
|
|
deviceIsScreenOff_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool GetDeviceState() const
|
|
|
|
{
|
|
|
|
return deviceIsScreenOff_;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool WasSetDeviceState() const
|
|
|
|
{
|
|
|
|
return WasOptionSet(OPTION_COMPILER_DEVICE_STATE);
|
|
|
|
}
|
|
|
|
|
2022-12-14 09:07:53 +00:00
|
|
|
void SetOptCodeProfiler(bool value)
|
|
|
|
{
|
|
|
|
optCodeProfiler_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool GetOptCodeProfiler() const
|
|
|
|
{
|
|
|
|
return optCodeProfiler_;
|
|
|
|
}
|
2023-04-07 08:51:43 +00:00
|
|
|
|
|
|
|
void SetVerifyVTable(bool value)
|
|
|
|
{
|
|
|
|
verifyVTable_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool GetVerifyVTable() const
|
|
|
|
{
|
|
|
|
return verifyVTable_;
|
|
|
|
}
|
|
|
|
|
|
|
|
std::string GetCompilerSelectMethods() const
|
|
|
|
{
|
|
|
|
return compilerSelectMethods_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetCompilerSelectMethods(std::string value)
|
|
|
|
{
|
|
|
|
compilerSelectMethods_ = std::move(value);
|
|
|
|
}
|
|
|
|
|
|
|
|
std::string GetCompilerSkipMethods() const
|
|
|
|
{
|
|
|
|
return compilerSkipMethods_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetCompilerSkipMethods(std::string value)
|
|
|
|
{
|
|
|
|
compilerSkipMethods_ = std::move(value);
|
|
|
|
}
|
|
|
|
|
2024-07-04 08:02:26 +00:00
|
|
|
void SetPGOTrace(bool value)
|
|
|
|
{
|
|
|
|
pgoTrace_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool GetPGOTrace() const
|
|
|
|
{
|
|
|
|
return pgoTrace_;
|
|
|
|
}
|
|
|
|
|
2023-05-10 13:22:15 +00:00
|
|
|
void SetTraceInline(bool value)
|
|
|
|
{
|
|
|
|
traceInline_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool GetTraceInline() const
|
|
|
|
{
|
|
|
|
return traceInline_;
|
|
|
|
}
|
|
|
|
|
2023-09-21 13:20:55 +00:00
|
|
|
void SetTraceValueNumbering(bool value)
|
|
|
|
{
|
|
|
|
traceValueNumbering_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool GetTraceValueNumbering() const
|
|
|
|
{
|
|
|
|
return traceValueNumbering_;
|
|
|
|
}
|
2023-12-27 14:12:51 +00:00
|
|
|
|
2023-12-09 01:13:27 +00:00
|
|
|
void SetTraceJIT(bool value)
|
|
|
|
{
|
|
|
|
traceJIT_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool GetTraceJIT() const
|
|
|
|
{
|
|
|
|
return traceJIT_;
|
|
|
|
}
|
2023-09-21 13:20:55 +00:00
|
|
|
|
2023-10-24 12:36:58 +00:00
|
|
|
void SetTraceInstructionCombine(bool value)
|
|
|
|
{
|
|
|
|
traceInstructionCombine_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool GetTraceInstructionCombine() const
|
|
|
|
{
|
|
|
|
return traceInstructionCombine_;
|
|
|
|
}
|
|
|
|
|
2023-05-10 13:22:15 +00:00
|
|
|
void SetMaxInlineBytecodes(size_t value)
|
|
|
|
{
|
|
|
|
maxInlineBytecodes_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
size_t GetMaxInlineBytecodes()
|
|
|
|
{
|
|
|
|
return maxInlineBytecodes_;
|
|
|
|
}
|
2023-05-24 09:39:27 +00:00
|
|
|
|
2024-03-28 03:13:40 +00:00
|
|
|
void SetCompilerFrameworkAbcPath(std::string frameworkAbcPath)
|
|
|
|
{
|
|
|
|
frameworkAbcPath_ = std::move(frameworkAbcPath);
|
|
|
|
}
|
|
|
|
|
|
|
|
std::string GetCompilerFrameworkAbcPath() const
|
|
|
|
{
|
|
|
|
return frameworkAbcPath_;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool WasSetCompilerFrameworkAbcPath() const
|
|
|
|
{
|
|
|
|
return WasOptionSet(OPTION_COMPILER_FRAMEWORK_ABC_PATH);
|
|
|
|
}
|
|
|
|
|
2023-05-24 09:39:27 +00:00
|
|
|
void SetTargetCompilerMode(std::string mode)
|
|
|
|
{
|
|
|
|
targetCompilerMode_ = std::move(mode);
|
|
|
|
}
|
|
|
|
|
|
|
|
std::string GetTargetCompilerMode() const
|
|
|
|
{
|
|
|
|
return targetCompilerMode_;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsTargetCompilerMode() const
|
|
|
|
{
|
|
|
|
return IsPartialCompilerMode() || IsFullCompilerMode();
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsPartialCompilerMode() const
|
|
|
|
{
|
|
|
|
return targetCompilerMode_ == "partial";
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsFullCompilerMode() const
|
|
|
|
{
|
|
|
|
return targetCompilerMode_ == "full";
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetHapPath(std::string path)
|
|
|
|
{
|
|
|
|
hapPath_ = std::move(path);
|
|
|
|
}
|
|
|
|
|
|
|
|
std::string GetHapPath() const
|
|
|
|
{
|
|
|
|
return hapPath_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetHapAbcOffset(uint32_t offset)
|
|
|
|
{
|
|
|
|
hapAbcOffset_ = offset;
|
|
|
|
}
|
|
|
|
|
|
|
|
uint32_t GetHapAbcOffset() const
|
|
|
|
{
|
|
|
|
return hapAbcOffset_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetHapAbcSize(uint32_t size)
|
|
|
|
{
|
|
|
|
hapAbcSize_ = size;
|
|
|
|
}
|
|
|
|
|
|
|
|
uint32_t GetHapAbcSize() const
|
|
|
|
{
|
|
|
|
return hapAbcSize_;
|
|
|
|
}
|
|
|
|
|
2023-07-02 07:54:40 +00:00
|
|
|
void SetCompilerNoCheck(bool value)
|
|
|
|
{
|
|
|
|
compilerNoCheck_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsCompilerNoCheck() const
|
|
|
|
{
|
|
|
|
return compilerNoCheck_;
|
|
|
|
}
|
|
|
|
|
2023-05-30 12:38:41 +00:00
|
|
|
void SetOptionsForTargetCompilation();
|
|
|
|
|
2024-06-21 02:20:15 +00:00
|
|
|
void SetCompilerPipelineHostAOT(bool value)
|
|
|
|
{
|
|
|
|
compilerPipelineHostAOT_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsCompilerPipelineHostAOT() const
|
|
|
|
{
|
|
|
|
return compilerPipelineHostAOT_;
|
|
|
|
}
|
|
|
|
|
2023-07-07 03:54:42 +00:00
|
|
|
void SetFastAOTCompileMode(bool value)
|
|
|
|
{
|
|
|
|
fastAOTCompileMode_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool GetFastAOTCompileMode() const
|
|
|
|
{
|
|
|
|
return fastAOTCompileMode_;
|
|
|
|
}
|
|
|
|
|
2023-07-10 03:26:49 +00:00
|
|
|
void SetEnableOptLoopPeeling(bool value)
|
|
|
|
{
|
|
|
|
enableOptLoopPeeling_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableOptLoopPeeling() const
|
|
|
|
{
|
|
|
|
return enableOptLoopPeeling_;
|
|
|
|
}
|
|
|
|
|
2023-09-14 09:17:53 +00:00
|
|
|
void SetEnableOptLoopInvariantCodeMotion(bool value)
|
|
|
|
{
|
|
|
|
enableOptLoopInvariantCodeMotion_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableOptLoopInvariantCodeMotion() const
|
|
|
|
{
|
|
|
|
return enableOptLoopInvariantCodeMotion_;
|
|
|
|
}
|
|
|
|
|
2023-09-13 07:02:07 +00:00
|
|
|
bool IsEnableOptConstantFolding() const
|
|
|
|
{
|
|
|
|
return enableOptConstantFolding_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetEnableOptConstantFolding(bool value)
|
|
|
|
{
|
|
|
|
enableOptConstantFolding_ = value;
|
|
|
|
}
|
|
|
|
|
2023-08-28 06:11:40 +00:00
|
|
|
void SetEnableOptOnHeapCheck(bool value)
|
|
|
|
{
|
|
|
|
enableOptOnHeapCheck_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableOptOnHeapCheck() const
|
|
|
|
{
|
|
|
|
return enableOptOnHeapCheck_;
|
|
|
|
}
|
|
|
|
|
2023-10-23 01:10:20 +00:00
|
|
|
bool IsEnableLexenvSpecialization() const
|
|
|
|
{
|
|
|
|
return enableLexenvSpecialization_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetEnableLexenvSpecialization(bool value)
|
|
|
|
{
|
|
|
|
enableLexenvSpecialization_ = value;
|
|
|
|
}
|
|
|
|
|
2023-11-01 10:52:52 +00:00
|
|
|
bool IsEnableNativeInline() const
|
|
|
|
{
|
|
|
|
return enableNativeInline_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetEnableNativeInline(bool value)
|
|
|
|
{
|
|
|
|
enableNativeInline_ = value;
|
|
|
|
}
|
|
|
|
|
2023-11-09 09:25:34 +00:00
|
|
|
bool IsEnableLoweringBuiltin() const
|
|
|
|
{
|
|
|
|
return enableLoweringBuiltin_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetEnableLoweringBuiltin(bool value)
|
|
|
|
{
|
|
|
|
enableLoweringBuiltin_ = value;
|
|
|
|
}
|
|
|
|
|
2023-11-27 12:16:00 +00:00
|
|
|
void SetCompilerEnableLiteCG(bool value)
|
2023-11-16 08:11:50 +00:00
|
|
|
{
|
|
|
|
enableLiteCG_ = value;
|
|
|
|
}
|
|
|
|
|
2023-11-27 12:16:00 +00:00
|
|
|
bool IsCompilerEnableLiteCG() const
|
2023-11-16 08:11:50 +00:00
|
|
|
{
|
|
|
|
return enableLiteCG_;
|
|
|
|
}
|
|
|
|
|
2024-01-19 08:38:20 +00:00
|
|
|
void SetTypedOpProfiler(bool value)
|
2023-12-27 14:12:51 +00:00
|
|
|
{
|
2024-01-19 08:38:20 +00:00
|
|
|
enableTypedOpProfiler_ = value;
|
2023-12-27 14:12:51 +00:00
|
|
|
}
|
|
|
|
|
2024-01-19 08:38:20 +00:00
|
|
|
bool GetTypedOpProfiler() const
|
2023-12-27 14:12:51 +00:00
|
|
|
{
|
2024-01-19 08:38:20 +00:00
|
|
|
return enableTypedOpProfiler_;
|
2023-12-27 14:12:51 +00:00
|
|
|
}
|
|
|
|
|
2024-01-29 07:34:49 +00:00
|
|
|
bool IsEnableBranchProfiling() const
|
|
|
|
{
|
|
|
|
return enableBranchProfiling_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetEnableBranchProfiling(bool value)
|
|
|
|
{
|
|
|
|
enableBranchProfiling_ = value;
|
|
|
|
}
|
|
|
|
|
2024-02-07 02:14:45 +00:00
|
|
|
void SetTestAssert(bool value)
|
|
|
|
{
|
|
|
|
testAssert_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool GetTestAssert() const
|
|
|
|
{
|
|
|
|
return testAssert_;
|
|
|
|
}
|
|
|
|
|
2024-07-04 08:02:26 +00:00
|
|
|
void SetCompilerMethodsRange(arg_list_t* argListStr)
|
2024-02-08 08:49:59 +00:00
|
|
|
{
|
|
|
|
compileMethodsRange_.first = std::stoull((*argListStr)[0]);
|
|
|
|
compileMethodsRange_.second = std::stoull((*argListStr)[1]);
|
|
|
|
}
|
|
|
|
|
2024-07-04 08:02:26 +00:00
|
|
|
const std::pair<uint32_t, uint32_t>& GetCompilerMethodsRange() const
|
2024-02-08 08:49:59 +00:00
|
|
|
{
|
|
|
|
return compileMethodsRange_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetCompilerCodegenOptions(arg_list_t argListStr)
|
|
|
|
{
|
|
|
|
compileCodegenOption_ = std::move(argListStr);
|
|
|
|
}
|
|
|
|
|
2024-07-04 08:02:26 +00:00
|
|
|
const arg_list_t& GetCompilerCodegenOptions() const
|
2024-02-08 08:49:59 +00:00
|
|
|
{
|
|
|
|
return compileCodegenOption_;
|
|
|
|
}
|
2024-02-20 09:01:56 +00:00
|
|
|
|
|
|
|
void SetOptCodeRange(std::string value)
|
|
|
|
{
|
|
|
|
optBCRange_ = std::move(value);
|
|
|
|
}
|
|
|
|
|
|
|
|
std::string GetOptCodeRange() const
|
|
|
|
{
|
|
|
|
return optBCRange_;
|
|
|
|
}
|
2024-03-19 04:47:06 +00:00
|
|
|
|
2024-02-26 09:00:01 +00:00
|
|
|
void SetEnableEscapeAnalysis(bool value)
|
|
|
|
{
|
|
|
|
enableEscapeAnalysis_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableEscapeAnalysis() const
|
|
|
|
{
|
|
|
|
return enableEscapeAnalysis_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetEnableTraceEscapeAnalysis(bool value)
|
|
|
|
{
|
|
|
|
traceEscapeAnalysis_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool GetTraceEscapeAnalysis() const
|
|
|
|
{
|
|
|
|
return traceEscapeAnalysis_;
|
|
|
|
}
|
|
|
|
|
2024-03-15 03:39:24 +00:00
|
|
|
void SetEnableInductionVariableAnalysis(bool value)
|
|
|
|
{
|
|
|
|
enableInductionVariableAnalysis_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableInductionVariableAnalysis() const
|
|
|
|
{
|
|
|
|
return enableInductionVariableAnalysis_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetEnableTraceInductionVariableAnalysis(bool value)
|
|
|
|
{
|
|
|
|
traceInductionVariableAnalysis_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool GetTraceInductionVariableAnalysis() const
|
|
|
|
{
|
|
|
|
return traceInductionVariableAnalysis_;
|
|
|
|
}
|
2024-04-08 02:47:41 +00:00
|
|
|
|
|
|
|
void SetEnableMemoryAnalysis(bool value)
|
|
|
|
{
|
|
|
|
enableMemoryAnalysis_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableMemoryAnalysis() const
|
|
|
|
{
|
|
|
|
return enableMemoryAnalysis_;
|
|
|
|
}
|
|
|
|
|
2024-04-13 15:49:46 +00:00
|
|
|
void SetCheckPgoVersion(bool value)
|
|
|
|
{
|
|
|
|
checkPgoVersion_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsCheckPgoVersion() const
|
|
|
|
{
|
|
|
|
return checkPgoVersion_;
|
|
|
|
}
|
|
|
|
|
2024-04-15 06:04:51 +00:00
|
|
|
void SetEnableJITPGO(bool value)
|
|
|
|
{
|
|
|
|
enableJITPGO_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableJITPGO() const
|
|
|
|
{
|
|
|
|
return enableJITPGO_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetEnableProfileDump(bool value)
|
|
|
|
{
|
|
|
|
enableProfileDump_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableProfileDump() const
|
|
|
|
{
|
|
|
|
return enableProfileDump_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetEnableAOTPGO(bool value)
|
|
|
|
{
|
|
|
|
enableAOTPGO_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableAOTPGO() const
|
|
|
|
{
|
|
|
|
return enableAOTPGO_;
|
|
|
|
}
|
|
|
|
|
2024-05-16 08:07:26 +00:00
|
|
|
void SetEnableJitFastCompile(bool value)
|
|
|
|
{
|
|
|
|
enableJitFastCompile_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableJitFastCompile() const
|
|
|
|
{
|
|
|
|
return enableJitFastCompile_;
|
|
|
|
}
|
2024-06-21 02:20:15 +00:00
|
|
|
|
2024-05-15 07:54:15 +00:00
|
|
|
void SetEnableFrameworkAOT(bool value)
|
|
|
|
{
|
|
|
|
enableFrameworkAOT_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsEnableFrameworkAOT() const
|
|
|
|
{
|
|
|
|
return enableFrameworkAOT_;
|
|
|
|
}
|
2024-05-16 08:07:26 +00:00
|
|
|
|
2024-07-02 07:38:59 +00:00
|
|
|
void SetAsyncLoadAbc(bool value)
|
|
|
|
{
|
|
|
|
asyncLoadAbc_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsAsyncLoadAbc() const
|
|
|
|
{
|
|
|
|
return asyncLoadAbc_;
|
|
|
|
}
|
|
|
|
|
2024-07-17 03:02:36 +00:00
|
|
|
void SetAsyncLoadAbcTest(bool value)
|
|
|
|
{
|
|
|
|
asyncLoadAbcTest_ = value;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool IsAsyncLoadAbcTest() const
|
|
|
|
{
|
|
|
|
return asyncLoadAbcTest_;
|
|
|
|
}
|
|
|
|
|
2024-07-25 08:18:20 +00:00
|
|
|
bool IsPgoForceDump() const
|
|
|
|
{
|
|
|
|
return forceDump_;
|
|
|
|
}
|
|
|
|
|
|
|
|
void SetPgoForceDump(bool value)
|
|
|
|
{
|
|
|
|
forceDump_ = value;
|
|
|
|
}
|
|
|
|
|
2024-06-27 09:31:20 +00:00
|
|
|
public:
|
2024-07-25 02:03:01 +00:00
|
|
|
static constexpr int32_t MAX_APP_COMPILE_METHOD_SIZE = 4_KB;
|
2024-06-27 09:31:20 +00:00
|
|
|
|
2021-10-19 03:55:00 +00:00
|
|
|
private:
|
2024-07-04 08:02:26 +00:00
|
|
|
static constexpr int32_t DEFAULT_OPT_LEVEL = 3; // 3: default opt level
|
2024-06-21 02:20:15 +00:00
|
|
|
|
2024-07-04 08:02:26 +00:00
|
|
|
static bool StartsWith(const std::string& haystack, const std::string& needle)
|
2022-09-20 08:00:16 +00:00
|
|
|
{
|
|
|
|
return std::equal(needle.begin(), needle.end(), haystack.begin());
|
|
|
|
}
|
|
|
|
|
2024-03-15 09:19:20 +00:00
|
|
|
void WasSet(int option)
|
|
|
|
{
|
|
|
|
if (option < OPTION_SPLIT_ONE) {
|
|
|
|
wasSetPartOne_ |= (1ULL << static_cast<uint64_t>(option));
|
|
|
|
} else {
|
|
|
|
wasSetPartTwo_ |= (1ULL << static_cast<uint64_t>(option - OPTION_SPLIT_ONE));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-09-20 08:00:16 +00:00
|
|
|
bool WasOptionSet(int option) const
|
|
|
|
{
|
2024-03-15 09:19:20 +00:00
|
|
|
if (option < OPTION_SPLIT_ONE) {
|
|
|
|
return ((1ULL << static_cast<uint64_t>(option)) & wasSetPartOne_) != 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
return ((1ULL << static_cast<uint64_t>(option - OPTION_SPLIT_ONE)) & wasSetPartTwo_) != 0;
|
2022-09-20 08:00:16 +00:00
|
|
|
}
|
|
|
|
|
2022-09-22 08:01:36 +00:00
|
|
|
bool ParseBoolParam(bool* argBool);
|
2024-07-04 08:02:26 +00:00
|
|
|
bool ParseDoubleParam(const std::string& option, double* argDouble);
|
|
|
|
bool ParseIntParam(const std::string& option, int* argInt);
|
|
|
|
bool ParseUint32Param(const std::string& option, uint32_t* argUInt32);
|
|
|
|
bool ParseUint64Param(const std::string& option, uint64_t* argUInt64);
|
|
|
|
void ParseListArgParam(const std::string& option, arg_list_t* argListStr, std::string delimiter);
|
2022-09-20 08:00:16 +00:00
|
|
|
|
2022-09-27 12:38:01 +00:00
|
|
|
bool enableArkTools_ {true};
|
2022-09-20 08:00:16 +00:00
|
|
|
std::string stubFile_ {"stub.an"};
|
2023-09-05 07:09:21 +00:00
|
|
|
std::string compilerPkgInfo_ {};
|
|
|
|
std::string compilerExternalPkgInfo_ {};
|
2023-11-26 23:38:31 +00:00
|
|
|
bool compilerEnableExternalPkg_ {true};
|
2022-09-20 08:00:16 +00:00
|
|
|
bool enableForceGc_ {true};
|
2024-05-12 11:02:47 +00:00
|
|
|
bool enableEdenGC_ {false};
|
2022-09-20 08:00:16 +00:00
|
|
|
bool forceFullGc_ {true};
|
2024-02-22 06:54:53 +00:00
|
|
|
uint32_t forceSharedGc_ {1};
|
2022-09-20 08:00:16 +00:00
|
|
|
int arkProperties_ = GetDefaultProperties();
|
2023-01-29 03:40:13 +00:00
|
|
|
std::string arkBundleName_ = {""};
|
2024-04-09 06:54:58 +00:00
|
|
|
size_t heapSize_ = {0};
|
2022-09-20 08:00:16 +00:00
|
|
|
uint32_t gcThreadNum_ {7}; // 7: default thread num
|
|
|
|
uint32_t longPauseTime_ {40}; // 40: default pause time
|
2022-12-05 14:55:52 +00:00
|
|
|
std::string aotOutputFile_ {""};
|
2023-04-07 08:51:43 +00:00
|
|
|
std::string targetTriple_ {TARGET_X64};
|
2023-08-26 11:49:59 +00:00
|
|
|
uint32_t asmOptLevel_ {2};
|
2022-09-20 08:00:16 +00:00
|
|
|
uint32_t relocationMode_ {2}; // 2: default relocation mode
|
|
|
|
uint32_t maxNonmovableSpaceCapacity_ {4_MB};
|
|
|
|
bool enableAsmInterpreter_ {true};
|
2023-04-24 03:43:21 +00:00
|
|
|
bool enableBuiltinsLazy_ {true};
|
2022-09-20 08:00:16 +00:00
|
|
|
std::string asmOpcodeDisableRange_ {""};
|
2022-05-16 02:20:46 +00:00
|
|
|
AsmInterParsedOption asmInterParsedOption_;
|
2022-09-20 08:00:16 +00:00
|
|
|
uint64_t serializerBufferSizeLimit_ {2_GB};
|
|
|
|
uint32_t heapSizeLimit_ {512_MB};
|
|
|
|
bool enableIC_ {true};
|
|
|
|
std::string icuDataPath_ {"default"};
|
|
|
|
bool startupTime_ {false};
|
|
|
|
std::string compilerLogOpt_ {"none"};
|
2022-09-22 08:01:36 +00:00
|
|
|
std::string compilerLogMethods_ {"none"};
|
2022-11-17 11:12:49 +00:00
|
|
|
bool compilerLogSnapshot_ {false};
|
2022-11-10 09:17:49 +00:00
|
|
|
bool compilerLogTime_ {false};
|
2022-09-20 08:00:16 +00:00
|
|
|
bool enableRuntimeStat_ {false};
|
|
|
|
bool isWorker_ {false};
|
2024-07-23 09:31:15 +00:00
|
|
|
bool isRestrictedWorker_ {false};
|
2022-11-25 08:51:55 +00:00
|
|
|
bool traceBc_ {false};
|
2022-09-20 08:00:16 +00:00
|
|
|
std::string logLevel_ {"error"};
|
|
|
|
arg_list_t logDebug_ {{"all"}};
|
|
|
|
arg_list_t logInfo_ {{"all"}};
|
|
|
|
arg_list_t logWarning_ {{"all"}};
|
|
|
|
arg_list_t logError_ {{"all"}};
|
|
|
|
arg_list_t logFatal_ {{"all"}};
|
|
|
|
arg_list_t logComponents_ {{"all"}};
|
2022-10-15 07:55:29 +00:00
|
|
|
bool enableAOT_ {false};
|
2022-09-20 08:00:16 +00:00
|
|
|
uint32_t maxAotMethodSize_ {32_KB};
|
2023-01-30 06:39:03 +00:00
|
|
|
double typeThreshold_ {-1};
|
2022-09-20 08:00:16 +00:00
|
|
|
std::string entryPoint_ {"_GLOBAL::func_main_0"};
|
|
|
|
bool mergeAbc_ {false};
|
2024-07-08 04:07:06 +00:00
|
|
|
bool enableArrayBoundsCheckElimination_ {false};
|
2022-09-20 08:00:16 +00:00
|
|
|
bool enableTypeLowering_ {true};
|
2023-04-07 08:51:43 +00:00
|
|
|
bool enableEarlyElimination_ {true};
|
|
|
|
bool enableLaterElimination_ {true};
|
2023-05-10 12:44:07 +00:00
|
|
|
bool enableValueNumbering_ {true};
|
2024-01-11 12:25:47 +00:00
|
|
|
bool enableOptString_ {true};
|
2023-12-18 07:57:47 +00:00
|
|
|
bool enableElementsKind_ {false};
|
2023-10-24 12:36:58 +00:00
|
|
|
bool enableInstrcutionCombine {true};
|
2023-09-21 13:20:55 +00:00
|
|
|
bool enableNewValueNumbering_ {true};
|
2023-07-13 07:33:58 +00:00
|
|
|
bool enableOptInlining_ {true};
|
2024-07-08 02:32:40 +00:00
|
|
|
bool enableTryCatchFunction_ {false};
|
2023-03-08 07:05:35 +00:00
|
|
|
bool enableOptPGOType_ {true};
|
2024-07-04 08:02:26 +00:00
|
|
|
bool enableFastJIT_ {false};
|
|
|
|
bool enableAPPJIT_ {false};
|
2024-05-11 04:31:04 +00:00
|
|
|
bool isEnableJitDfxDump_ {false};
|
2024-07-04 08:02:26 +00:00
|
|
|
bool enableOSR_ {false};
|
2023-12-09 01:13:27 +00:00
|
|
|
uint16_t jitHotnessThreshold_ {2};
|
2024-04-22 07:38:21 +00:00
|
|
|
uint8_t jitCallThreshold_ {0};
|
2024-03-19 06:57:29 +00:00
|
|
|
uint16_t osrHotnessThreshold_ {2};
|
2024-07-04 08:02:26 +00:00
|
|
|
bool forceJitCompileMain_ {false};
|
|
|
|
bool enableBaselineJIT_ {false};
|
|
|
|
uint16_t baselineJitHotnessThreshold_ {1};
|
enable baseline compiler
add baseline builtins
Change-Id: Ib8d7c392c62e21eab19b17e45c0fafb499cbbed9
support running baseline compiler by option --compiler-force-baseline-compile-main=true
Change-Id: I7c7337faf9fad39ccffb2de28d46403e2f6cb22b
baseline jit part3
Change-Id: I36e8dd6a6fa6fffb738029a8620bbcd01df1e017
baseline part4
Change-Id: Ib45bcf7255a85aa48f864a6021adf819927e6a13
baseline part5 move baseline into compiler folder
Change-Id: Ia8781c95ae00c4f300e7267a6da0078b5d04e4c8
!185 support BaselinePrologue
* support BaselinePrologue part3
* support BaselinePrologue part2
* support BaselinePrologue
!187 [BaselineJit] support load baseline builtins
* [BaselineJit]support load baseline builtins
!186[BaselineJIT] workaround for baselinejit support install code
* install code part3
* install code part2
* baseline jit support intall code
!188 [BaselineJit] support CallBuiltin
* [BaselineJit] baseline support CallBuiltin
!189 [BaselineJIT]implement StackOffset class
* [BaselineJIT]implement StackOffset class
!190 [BaselineJIT]refactor BaselineAssembler and MacroAssembler
* [BaselineJIT]refactor BaselineAssembler and MacroAssembler
!191 [BaselineJIT] refactor class BaselineCompiler
* [BaselineJIT] refactor class BaselineCompiler
!192 [BaselineJIT] callbuiltin support new parameter type
new parameter type: int32_t,SpecialParameter,VirtualRegister
!193 [BaselineJIT]modify BaselineLoadObjByName function
* [BaselineJIT]modify BaselineLoadObjByName function
!194 [BaselineJIT] support new builtins
* [BaselineJIT] add BaselineTryLdGLobalByNameImm8ID16, BaselineStToGlobalRecordImm16ID16, BaselineLdaStrID16
!196 [BaselineJIT]bugfix for BaselinePrologue, align the rsp
* [BaselineJIT]bugfix for BaselinePrologue, align the rsp
!197 [BaselineJIT]bugfix for StackOffsetDescriptor
* [BaselineJIT]bugfix for StackOffsetDescriptor
!198 [BaselineJIT]workaround for helloworld testcase, helloworld can run successfully
* workaround for helloworld testcase, helloworld can run successfully
!200 [BaselineJIT]adapt profile collection
* [BaselineJIT]adapt profile collection
!201 [BaselineJIT]refactor baseline jit
* [BaselineJIT]refactor baseline jit
!203 [BaselineJIT]support trigger BaselineJITCompile and call baselinecode async
* [BaselineJIT]support trigger BaselineJITCompile and call baselinecode async
!202 [BaselineJIT]enable update hotness
* [BaselineJIT]enable update hotness
!205 [BaselineJIT]adapt JSCallDispatch interface
* [BaselineJIT]adapt JSCallDispatch interface
Change-Id: I4efce4346f985c7e074d7fc4bbfe3b081272e950
!195 [Baseline JIT] bytecode to builtin funs
* !206 enable bytecode builtins and call CHECK_PENDING_EXCEPTION
* [Baseline JIT] builtins:StobjbynameImm9Id16V8,StobjbynameImm16Id16V8,S…
* [Baseline JIT] builtins:CopyrestargsImm8,LdlexvarImm4Imm4,StlexvarImm4…
* [Baseline JIT] builtins: LdsuperbyvalueImm8V8,LdsuperbyvalueImm16V8,St…
* [Baseline JIT] builtins: DelobjpropV8,AsyncfunctionawaituncaughtV8,Cop…
* !204 enable bytecode builtins
* [Baseline JIT] builtins: DefineclasswithbufferImm8Id16Id16Imm16V8,Defi…
* [Baseline JIT] builtins: LdthisbynameImm8Id16,Definegettersetterbyval…
* [Baseline JIT] builtins: Callarg0Imm8,SupercallspreadImm8V8,ApplyImm8V…
* !199 enable bytecode builtin func
* [Baseline JIT] builtins: StrictnoteqImm8V8,StricteqImm8V8,Istrue,Isfal…
* [Baseline JIT] builtins: NegImm8,NotImm8,IncImm8,DecImm8,IsinImm8V8,In…
* [Baseline JIT] builtins: And2Imm8V8,Or2Imm8V8,Xor2Imm8V8,ExpImm8V8,Typ…
* [Baseline JIT] builtins:LessImm8V8,LesseqImm8V8,GreaterImm8V8,Greatere…
* [Baseline JIT] builtins:Add2Imm8V8,SUB2_IMM8_V8,MUL2_IMM8_V8,DIV2_IMM8…
* [Baseline JIT] builtins:CreateobjectwithbufferImm8Id16,Createobjectwit…
* [Baseline JIT]builtins:Createemptyobject,CreateemptyarrayImm8,Createem…
* [Baseline JIT] builtins:GetiteratorImm16,Asyncfunctionenter,Createasyn…
* [Baseline JIT] builtins:ldsymbol,ldglobal,Poplexenv,Getunmappedargs,Ge…
* [BaselineJIT] builtins: add base class
!209 handle opcode in baseline compiler
* handle opcode in baseline compiler
!210 [baseline jit]: add baseline stub call signature target kind info
* [baseline jit]: add baseline stub call signature target kind info
!212 [BaselineJIT]baseline builtin bugfix
* [BaselineJIT]baseline builtin bugfix
!207 [BaselineJIT]support BaselineBuiltinFrame
* [BaselineJIT]support BaselineBuiltinFrame
!214 [BaselineJIT]baseline builtin bugfix of using JSCallDispatch
* [BaselineJIT]baseline builtin bugfix JSCallDispatch
Change-Id: Id67b991df5dee753a38c284234d15b02f0d8a091
!215 [BaselineJIT]bugfix for StackOffsetDescriptor
* [BaselineJIT]bugfix for StackOffsetDescriptor
!216 [baseline jit]update bytecode builtins
* [baseline jit]update bytecode builtins
!213 [BaselineJIT]support BaselineReturn and BaselineReturnundefined
* [BaselineJIT]support BaselineReturn and BaselineReturnundefined
!218 [BaselineJIT]baseline builtin
* [BaselineJIT]baseline builtin:ldfunction,ldthis,asyncgeneratorresolvev…
!217 parse baseline-jit bytecode v1.0
* parse bytecode in baseline-jit
!220 [BaselineJIT]baseline refactor ParameterIndex
* [BaselineJIT]baseline refactor ParameterIndex
!223 [BaselineJIT]get function and method from stack, avoiding method is used after call
* [BaselineJIT]get function and method from stack, avoiding method is us…
!224 [BaselineJIT]bugfix for compiling x64.release
* [BaselineJIT]bugfix for compiling x64.release
!226 [BaselineJIT] adapt gc for BASELINE_BUILTIN_FRAME type
* [BaselineJIT]adapt gc for BASELINE_BUILTIN_FRAME type
!222 [BaselineJIT] parse baseline builtin args
* [BaselineJIT] parse baseline builtin args:part 2
* [BaselineJIT] parse baseline builtin args
!229 parse baseline-jit bytecode v2.0
* [BaselineJIT] parse bytecode v2.0
!230 [BaselineJIT] remove including undefined_function file
* [BaselineJIT] remove including undefined_function file
!228 handle byte opcode of jmp v2
* [baseline jit]handle opcode of jmp V2
[BaselineJIT]rebase bugfix
Change-Id: I078298849139317dfa89fb139979c1b7d938b344
!231 [BaselineJIT] fix bugs about reading bytecode
* [BaselineJIT] fix bugs about read bytecode
!232 [BaselineJIT] fix bug about processing arguments in stub
* [BaselineJIT] fix bug about processing argument in baseline-stubs
!233 handle int64_t type in CallBuiltin
* [baseline jit]handle int64_t type in CallBuiltin
!234 [BaselineJIT] fix bug for StToGlobalRecordImm16ID16
* [BaselineJIT] fix bug for StToGlobalRecordImm16ID16
!235 [BaselineJIT] fix bugs about args type
* [BaselineJIT] fix type of args that passing to builtins
!236 [BaselineJIT] do not pass constpool to builtins
* [BaselineJIT] do not passing constpool to builtin
Change-Id: I8c46d70527a3fedd841d28ac1908a02d4a66edeb
!237 [baselineJit]Bugfix for sp used in JSCallDispatch and incorretc type
* [baselineJit]Bugfix for sp used in JSCallDispatch and incorretc type
Change-Id: I3f42ecd06266a20b2b145cfe98bcbd97a2848bab
[BaselineJIT] dump_test bugfix
Change-Id: I97d21960ca98cd1a6fc9b1e81b647ff9d8d5d0c2
[BaselineJIT]codecheck fix
Change-Id: I93eb02e45b70f4a5bfee84fec0c8e2cdc765d348
code check bugfix part2
Change-Id: I8680dd2c098193705709691fa78e8e6f3ad8cd6c
bugfix for review
Change-Id: I49b28e109530b9f8b403ba22ba39948e02834021
[BaselineJIT]change file folder
Change-Id: I1f46110a804f17270badcff7cdeb2058ca164161
[BaselineJIT]bugfix for review part2
Change-Id: I190406652697f9b17ac6c84dd706262046dbb5f7
!238 [BaselineJIT] fix more than 6 args builtins
* [BaselineJIT] fix more than 6 args builtins
!239 [BaselineJIT] fix bug in parsing CALLTHISRANGE_IMM8_IMM8_V8
* [BaselineJIT] fix bug in parsing CALLTHISRANGE_IMM8_IMM8_V8
!240 [BaselineJIT] fix bug and add NewobjrangeImm8Imm8V8,NewobjrangeImm16Imm8V8
* [BaselineJIT] fix bug and add NewobjrangeImm8Imm8V8,NewobjrangeImm16Imm8V8
!241 [BaselineJIT] fix bug of ldnan, ldinfinity
* [BaselineJIT] fix bug of ldnan, ldinfinity
!242 [BaselineJIT] return JSCallDispatch result
* [BaselineJIT] return result of JSCallDispatch for baselinecode
!245 [BaselineJIT] fix builtins return value
* [BaselineJIT] fix builtins return value
!244 [BaselineJIT] save result to acc
* [BaselineJIT] save result to acc
!243 Bugfix for StlexvarImm4Imm4
* [baselineJit]Bugfix for StlexvarImm4Imm4
!246 [BaselineJIT] remove ldfunction
* [BaselineJIT] remove ldfunction
!248 [BaselineJIT] save result of DEFINECLASSWITHBUFFER_IMM8_ID16_ID16_IMM16_V8
* [BaselineJIT] fix return
!247 [baselineJit]Bugfix for Stlexvar and Ldlexvar
* [baselineJit]Bugfix for Stlexvar and Ldlexvar
!249 [BaselineJIT] Revert "!242[BaselineJIT] return JSCallDispatch result"
* Revert "!242 [BaselineJIT] return JSCallDispatch result"
!251 Bugfix for BaselineCreateobjectwithexcludedkeysImm8V8V8
* [baselineJit]Bugfix for BaselineCreateobjectwithexcludedkeysImm8V8V8
!252 [baselineJit]Bugfix for notException branch
* [baselineJit]Bugfix for notException branch
!250 [BaselineJIT] save result to acc in JSCallDispatch for baselinemethodcode
* [BaselineJIT] save result of JSCallDispatch to acc for baselinecode
!254 [BaselineJIT] fix type bug
* [BaselineJIT] fix type bug
!255 [BaselineJIT] fix bug of LDAI_IMM32
* [BaselineJIT] fix bug of LDAI_IMM32
!253 Bugfix for Poplexenv
* [baselineJit]Bugfix for Poplexenv
!256 [BaselineJIT] fix pc & refractor jscalldispatch for baseline-jit
* [BaselineJIT] fix pc of baseline-jit & refactor jscalldispatch for baseline-jit
!257 [BaselineJIT] replace indirectly jscalldispatch with jscalldispatchforbaseline
* [BaselineJIT] replace indirectly jscalldispatch with jscalldispatchforbaseline
!258 [BaselineJIT] fix using shl2 builtin bug
* [BaselineJIT] fix using shl2 builtin bug
!259 Bugfix and enable BaselineIstrue and BaselineIsFalse
* [baselineJit]Bugfix and enable BaselineIstrue and BaselineIsFalse
!260 [BaselineJIT] fix bug about passing FUNC parameter
* [BaselineJIT] fix bug about passing FUNC parameter
!261 [BaselineJIT] support passing parameters by stack and fix offset param bug
* [BaselineJIT] support passing parameters by stack and fix offset param bug
!263 [BaselineJIT] fix parameters bug of LdobjbyvalueImm16V8 & StobjbyvalueImm16V8V8
* [BaselineJIT] fix parameters bug of LdobjbyvalueImm16V8 & StobjbyvalueImm16V8V8
!262 Bugfix for jump offset
* [baselineJit]Bugfix for jump offset
!264 [BaselineJIT] fix intermediates v8 parameters bug
* [BaselineJIT] fix intermediates v8 parameters bug
Change-Id: I8bf4fdf7621770a1976925423de23693570365c9
!267 [BaselineJIT] fix bug of BaselineInstanceofImm8V8
* [BaselineJIT] fix bug of BaselineInstanceofImm8V8
!269 [BaselineJIT] support NEWOBJRANGE_IMM16_IMM8_V8 & fix calling DefineMethod runtimeStub
* [BaselineJIT] support NEWOBJRANGE_IMM16_IMM8_V8 & fix calling DefineMe…
!268 [BaselineJIT]support update hotness
* [BaselineJIT]enable update hotness part2
* [BaselineJIT]support update hotness
Change-Id: I24b02a9e015df7263b1e9d7210377add0bfc558c
CI bugfix
Change-Id: I2d5aef07a1f14b3c64585790cff99d64be0d6396
Signed-off-by: w00443755 <wangzhilei2@huawei.com>
2024-01-26 08:08:45 +00:00
|
|
|
bool forceBaselineCompileMain_ {false};
|
2023-08-26 11:49:59 +00:00
|
|
|
bool enableOptTrackField_ {true};
|
2023-05-05 06:53:42 +00:00
|
|
|
uint32_t compilerModuleMethods_ {100};
|
2024-03-15 09:19:20 +00:00
|
|
|
uint64_t wasSetPartOne_ {0};
|
|
|
|
uint64_t wasSetPartTwo_ {0};
|
2023-12-19 12:41:49 +00:00
|
|
|
bool enableContext_ {false};
|
2022-10-11 06:32:15 +00:00
|
|
|
bool enablePrintExecuteTime_ {false};
|
2022-10-17 09:02:45 +00:00
|
|
|
bool enablePGOProfiler_ {false};
|
2024-04-21 14:05:22 +00:00
|
|
|
bool enableJITPGO_ {true};
|
2024-04-15 06:04:51 +00:00
|
|
|
bool enableAOTPGO_ {true};
|
|
|
|
bool enableProfileDump_ {true};
|
2024-05-15 07:54:15 +00:00
|
|
|
bool enableFrameworkAOT_ {true};
|
2023-05-27 08:50:29 +00:00
|
|
|
uint32_t pgoHotnessThreshold_ {1};
|
2022-10-17 09:02:45 +00:00
|
|
|
std::string pgoProfilerPath_ {""};
|
2023-09-22 09:16:17 +00:00
|
|
|
uint32_t pgoSaveMinInterval_ {30};
|
2022-12-14 09:07:53 +00:00
|
|
|
bool traceDeopt_ {false};
|
2023-02-06 07:31:06 +00:00
|
|
|
uint8_t deoptThreshold_ {10};
|
2023-04-07 08:51:43 +00:00
|
|
|
bool stressDeopt_ {false};
|
2024-04-01 03:40:18 +00:00
|
|
|
bool deviceIsScreenOff_ {true};
|
2022-12-14 09:07:53 +00:00
|
|
|
bool optCodeProfiler_ {false};
|
2023-01-12 07:29:25 +00:00
|
|
|
bool startGlobalLeakCheck_ {false};
|
2023-04-07 08:51:43 +00:00
|
|
|
bool verifyVTable_ {false};
|
|
|
|
std::string compilerSelectMethods_ {""};
|
|
|
|
std::string compilerSkipMethods_ {""};
|
2024-07-04 08:02:26 +00:00
|
|
|
bool pgoTrace_ {false};
|
2023-05-10 13:22:15 +00:00
|
|
|
bool traceInline_ {false};
|
2024-07-04 08:02:26 +00:00
|
|
|
bool traceJIT_ {false};
|
|
|
|
bool traceValueNumbering_ {false};
|
|
|
|
bool traceInstructionCombine_ {false};
|
2024-06-21 02:20:15 +00:00
|
|
|
bool compilerPipelineHostAOT_ {false};
|
2023-08-26 11:49:59 +00:00
|
|
|
size_t maxInlineBytecodes_ {45};
|
2023-05-24 09:39:27 +00:00
|
|
|
std::string targetCompilerMode_ {""};
|
2024-03-28 03:13:40 +00:00
|
|
|
std::string frameworkAbcPath_ {""};
|
2023-05-24 09:39:27 +00:00
|
|
|
std::string hapPath_ {""};
|
|
|
|
uint32_t hapAbcOffset_ {0};
|
|
|
|
uint32_t hapAbcSize_ {0};
|
2024-02-20 09:01:56 +00:00
|
|
|
std::string optBCRange_ {""};
|
2023-07-02 07:54:40 +00:00
|
|
|
bool compilerNoCheck_ {false};
|
2023-08-26 11:49:59 +00:00
|
|
|
bool fastAOTCompileMode_ {false};
|
|
|
|
bool enableOptLoopPeeling_ {true};
|
2023-09-13 07:02:07 +00:00
|
|
|
bool enableOptConstantFolding_ {true};
|
2023-08-26 11:49:59 +00:00
|
|
|
bool enableOptOnHeapCheck_ {true};
|
2023-09-14 09:17:53 +00:00
|
|
|
bool enableOptLoopInvariantCodeMotion_ {false};
|
2023-11-22 01:15:28 +00:00
|
|
|
bool enableLexenvSpecialization_ {false};
|
2023-12-28 09:03:08 +00:00
|
|
|
bool enableNativeInline_ {true};
|
2023-12-28 17:53:11 +00:00
|
|
|
bool enableLoweringBuiltin_ {true};
|
2023-11-16 08:11:50 +00:00
|
|
|
bool enableLiteCG_ {false};
|
2024-01-19 08:38:20 +00:00
|
|
|
bool enableTypedOpProfiler_ {false};
|
2024-01-29 07:34:49 +00:00
|
|
|
bool enableBranchProfiling_ {true};
|
2024-02-07 02:14:45 +00:00
|
|
|
bool testAssert_ {false};
|
2024-02-08 08:49:59 +00:00
|
|
|
std::pair<uint32_t, uint32_t> compileMethodsRange_ {0, UINT32_MAX};
|
|
|
|
arg_list_t compileCodegenOption_ {{""}};
|
2024-02-26 09:00:01 +00:00
|
|
|
bool enableEscapeAnalysis_ {false};
|
|
|
|
bool traceEscapeAnalysis_ {false};
|
2024-03-15 03:39:24 +00:00
|
|
|
bool enableInductionVariableAnalysis_ {false};
|
|
|
|
bool traceInductionVariableAnalysis_ {false};
|
2024-04-08 02:47:41 +00:00
|
|
|
bool enableMemoryAnalysis_ {true};
|
2024-04-13 15:49:46 +00:00
|
|
|
bool checkPgoVersion_ {false};
|
2024-05-16 08:07:26 +00:00
|
|
|
bool enableJitFastCompile_ {false};
|
2024-07-04 08:02:26 +00:00
|
|
|
bool enableJitFrame_ {false};
|
2024-07-09 22:52:07 +00:00
|
|
|
bool disableCodeSign_ {true};
|
|
|
|
bool enableJitFort_ {false};
|
|
|
|
bool enableAsyncCopyToFort_ {true};
|
2024-07-04 08:02:26 +00:00
|
|
|
bool enableBaselinePgo_ {false};
|
2024-07-17 03:02:36 +00:00
|
|
|
bool asyncLoadAbc_ {true};
|
|
|
|
bool asyncLoadAbcTest_ {false};
|
2024-07-25 08:18:20 +00:00
|
|
|
bool forceDump_ {true};
|
2021-10-19 03:55:00 +00:00
|
|
|
};
|
2024-07-04 08:02:26 +00:00
|
|
|
} // namespace panda::ecmascript
|
2021-10-19 03:55:00 +00:00
|
|
|
|
2024-07-04 08:02:26 +00:00
|
|
|
#endif // ECMASCRIPT_JS_RUNTIME_OPTIONS_H_
|