14514f5e3Sopenharmony_ci/*
24514f5e3Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd.
34514f5e3Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
44514f5e3Sopenharmony_ci * you may not use this file except in compliance with the License.
54514f5e3Sopenharmony_ci * You may obtain a copy of the License at
64514f5e3Sopenharmony_ci *
74514f5e3Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
84514f5e3Sopenharmony_ci *
94514f5e3Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
104514f5e3Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
114514f5e3Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
124514f5e3Sopenharmony_ci * See the License for the specific language governing permissions and
134514f5e3Sopenharmony_ci * limitations under the License.
144514f5e3Sopenharmony_ci */
154514f5e3Sopenharmony_ci
164514f5e3Sopenharmony_ci#include "ecmascript/js_runtime_options.h"
174514f5e3Sopenharmony_ci
184514f5e3Sopenharmony_ci#include <cerrno>
194514f5e3Sopenharmony_ci#include <cstdlib>
204514f5e3Sopenharmony_ci#include <iostream>
214514f5e3Sopenharmony_ci#include <getopt.h>
224514f5e3Sopenharmony_ci
234514f5e3Sopenharmony_ci#include "ecmascript/compiler/aot_file/an_file_data_manager.h"
244514f5e3Sopenharmony_ci#include "ecmascript/compiler/ecma_opcode_des.h"
254514f5e3Sopenharmony_ci#include "ecmascript/platform/os.h"
264514f5e3Sopenharmony_ci
274514f5e3Sopenharmony_cinamespace panda::ecmascript {
284514f5e3Sopenharmony_ciconst std::string PUBLIC_API COMMON_HELP_HEAD_MSG =
294514f5e3Sopenharmony_ci    "Usage: jsvm  <option>  <filename.abc>\n"
304514f5e3Sopenharmony_ci    "\n"
314514f5e3Sopenharmony_ci    "Options:\n";
324514f5e3Sopenharmony_ci
334514f5e3Sopenharmony_ciconst std::string PUBLIC_API COMPILER_HELP_HEAD_MSG =
344514f5e3Sopenharmony_ci    "Usage: ark_aot_compiler  <option>  --aot-file=<filename>  <filename.abc>\n"
354514f5e3Sopenharmony_ci    "\n"
364514f5e3Sopenharmony_ci    "Options:\n";
374514f5e3Sopenharmony_ci
384514f5e3Sopenharmony_ciconst std::string PUBLIC_API STUB_HELP_HEAD_MSG =
394514f5e3Sopenharmony_ci    "Usage: ark_stub_compiler <option>\n"
404514f5e3Sopenharmony_ci    "\n"
414514f5e3Sopenharmony_ci    "Options:\n";
424514f5e3Sopenharmony_ci
434514f5e3Sopenharmony_ciconst std::string PUBLIC_API HELP_OPTION_MSG =
444514f5e3Sopenharmony_ci    "--aot-file:                           Path (file suffix not needed) to AOT output file. Default: 'aot_file'\n"
454514f5e3Sopenharmony_ci    "--ark-properties:                     Set ark properties\n"
464514f5e3Sopenharmony_ci    "--ark-bundle-name:                    Set ark bundle name\n"
474514f5e3Sopenharmony_ci    "--asm-interpreter:                    Enable asm interpreter. Default: 'true'\n"
484514f5e3Sopenharmony_ci    "--asm-opcode-disable-range:           Opcode range when asm interpreter is enabled.\n"
494514f5e3Sopenharmony_ci    "--builtins-lazy:                      Load some builtins function later.This option is only valid in workervm.\n"
504514f5e3Sopenharmony_ci    "--compiler-log:                       Log Option For aot compiler and stub compiler,\n"
514514f5e3Sopenharmony_ci    "                                      'none': no log,\n"
524514f5e3Sopenharmony_ci    "                                      'allllircirasm' or 'all012': print all log for all methods,\n"
534514f5e3Sopenharmony_ci    "                                      'allcir' or 'all0': print IR info for all methods,\n"
544514f5e3Sopenharmony_ci    "                                      'allllir' or 'all1': print llir info for all methods,\n"
554514f5e3Sopenharmony_ci    "                                      'allasm' or 'all2': print asm log for all methods,\n"
564514f5e3Sopenharmony_ci    "                                      'alltype' or 'all3': print type infer log for all methods,\n"
574514f5e3Sopenharmony_ci    "                                      'cerllircirasm' or 'cer0112': print all log for certain method defined "
584514f5e3Sopenharmony_ci                                           "in 'mlist-for-log',\n"
594514f5e3Sopenharmony_ci    "                                      'cercir' or 'cer0': print IR for methods in 'mlist-for-log',\n"
604514f5e3Sopenharmony_ci    "                                      'cerasm' or 'cer2': print log for methods in 'mlist-for-log',\n"
614514f5e3Sopenharmony_ci    "                                      Default: 'none'\n"
624514f5e3Sopenharmony_ci    "--compiler-log-methods:               Specific method list for compiler log, only used when compiler-log. "
634514f5e3Sopenharmony_ci                                           "Default: 'none'\n"
644514f5e3Sopenharmony_ci    "--compiler-type-threshold:            enable to skip methods whose type is no more than threshold. Default: -1\n"
654514f5e3Sopenharmony_ci    "--compiler-log-snapshot:              Enable to print snapshot information. Default: 'false'\n"
664514f5e3Sopenharmony_ci    "--compiler-log-time:                  Enable to print pass compiler time. Default: 'false'\n"
674514f5e3Sopenharmony_ci    "--enable-ark-tools:                   Enable ark tools to debug. Default: 'false'\n"
684514f5e3Sopenharmony_ci    "--open-ark-tools:                     Open ark tools to return specific implementation. Default: 'false'\n"
694514f5e3Sopenharmony_ci    "--pgo-trace:                          Enable pgo trace for JS runtime. Default: 'false'\n"
704514f5e3Sopenharmony_ci    "--compiler-trace-bc:                  Enable tracing bytecode for aot runtime. Default: 'false'\n"
714514f5e3Sopenharmony_ci    "--compiler-trace-deopt:               Enable tracing deopt for aot runtime. Default: 'false'\n"
724514f5e3Sopenharmony_ci    "--compiler-trace-inline:              Enable tracing inline function for aot runtime. Default: 'false'\n"
734514f5e3Sopenharmony_ci    "--compiler-trace-value-numbering:     Enable tracing value numbering for aot runtime. Default: 'false'\n"
744514f5e3Sopenharmony_ci    "--compiler-max-inline-bytecodes       Set max bytecodes count which aot function can be inlined. Default: '25'\n"
754514f5e3Sopenharmony_ci    "--compiler-deopt-threshold:           Set max count which aot function can occur deoptimization. Default: '10'\n"
764514f5e3Sopenharmony_ci    "--compiler-stress-deopt:              Enable stress deopt for aot compiler. Default: 'false'\n"
774514f5e3Sopenharmony_ci    "--compiler-opt-code-profiler:         Enable opt code Bytecode Statistics for aot runtime. Default: 'false'\n"
784514f5e3Sopenharmony_ci    "--compiler-opt-bc-range:              Range list for EcmaOpCode range Example '1:2,5:8'\n"
794514f5e3Sopenharmony_ci    "--compiler-opt-bc-range-help:         Range list for EcmaOpCode range help. Default: 'false''\n"
804514f5e3Sopenharmony_ci    "--enable-force-gc:                    Enable force gc when allocating object. Default: 'true'\n"
814514f5e3Sopenharmony_ci    "--enable-eden-gc:                     Enable eden gc. Default: 'false'\n"
824514f5e3Sopenharmony_ci    "--force-shared-gc-frequency:          How frequency force shared gc . Default: '1'\n"
834514f5e3Sopenharmony_ci    "--enable-ic:                          Switch of inline cache. Default: 'true'\n"
844514f5e3Sopenharmony_ci    "--enable-runtime-stat:                Enable statistics of runtime state. Default: 'false'\n"
854514f5e3Sopenharmony_ci    "--compiler-opt-array-bounds-check-elimination: Enable Index Check elimination. Default: 'true'\n"
864514f5e3Sopenharmony_ci    "--compiler-opt-constant-folding:      Enable constant folding. Default: 'true'\n"
874514f5e3Sopenharmony_ci    "--compiler-opt-type-lowering:         Enable all type optimization pass for aot compiler. Default: 'true'\n"
884514f5e3Sopenharmony_ci    "--compiler-opt-early-elimination:     Enable EarlyElimination for aot compiler. Default: 'true'\n"
894514f5e3Sopenharmony_ci    "--compiler-opt-later-elimination:     Enable LaterElimination for aot compiler. Default: 'true'\n"
904514f5e3Sopenharmony_ci    "--compiler-opt-string:                Enable string optimization pass for aot compiler. Default: 'true'\n"
914514f5e3Sopenharmony_ci    "--compiler-opt-value-numbering:       Enable ValueNumbering for aot compiler. Default: 'true'\n"
924514f5e3Sopenharmony_ci    "--compiler-opt-inlining:              Enable inlining function for aot compiler: Default: 'true'\n"
934514f5e3Sopenharmony_ci    "--compiler-opt-pgotype:               Enable pgo type for aot compiler: Default: 'true'\n"
944514f5e3Sopenharmony_ci    "--compiler-opt-track-field:           Enable track field for aot compiler: Default: 'false'\n"
954514f5e3Sopenharmony_ci    "--entry-point:                        Full name of entrypoint function. Default: '_GLOBAL::func_main_0'\n"
964514f5e3Sopenharmony_ci    "--force-full-gc:                      If true trigger full gc, else trigger semi and old gc. Default: 'true'\n"
974514f5e3Sopenharmony_ci    "--framework-abc-file:                 Snapshot file. Default: 'strip.native.min.abc'\n"
984514f5e3Sopenharmony_ci    "--gc-long-paused-time:                Set gc's longPauseTime in millisecond. Default: '40'\n"
994514f5e3Sopenharmony_ci    "--gc-thread-num:                      Set gc thread number. Default: '7'\n"
1004514f5e3Sopenharmony_ci    "--heap-size-limit:                    Max heap size (MB). Default: '512'\n"
1014514f5e3Sopenharmony_ci    "--help:                               Print this message and exit\n"
1024514f5e3Sopenharmony_ci    "--icu-data-path:                      Path to generated icu data file. Default: 'default'\n"
1034514f5e3Sopenharmony_ci    "--enable-worker:                      Whether is worker vm. Default: 'false'\n"
1044514f5e3Sopenharmony_ci    "--log-level:                          Log level: ['debug', 'info', 'warning', 'error', 'fatal'].\n"
1054514f5e3Sopenharmony_ci    "--log-components:                     Enable logs from specified components: ['all', 'gc', 'ecma','interpreter',\n"
1064514f5e3Sopenharmony_ci    "                                      'debugger', 'compiler', 'builtins', 'trace', 'jit', 'baselinejit', 'all']. \n"
1074514f5e3Sopenharmony_ci    "                                      Default: 'all'\n"
1084514f5e3Sopenharmony_ci    "--log-debug:                          Enable debug or above logs for components: ['all', 'gc', 'ecma',\n"
1094514f5e3Sopenharmony_ci    "                                      'interpreter', 'debugger', 'compiler', 'builtins', 'trace', 'jit',\n"
1104514f5e3Sopenharmony_ci    "                                      'baselinejit', 'all']. Default: 'all'\n"
1114514f5e3Sopenharmony_ci    "--log-error:                          Enable error log for components: ['all', 'gc', 'ecma',\n"
1124514f5e3Sopenharmony_ci    "                                      'interpreter', 'debugger', 'compiler', 'builtins', 'trace', 'jit',\n"
1134514f5e3Sopenharmony_ci    "                                      'baselinejit', 'all']. Default: 'all'\n"
1144514f5e3Sopenharmony_ci    "--log-fatal:                          Enable fatal log for components: ['all', 'gc', 'ecma',\n"
1154514f5e3Sopenharmony_ci    "                                      'interpreter', 'debugger', 'compiler', 'builtins', 'trace', 'jit',\n"
1164514f5e3Sopenharmony_ci    "                                      'baselinejit', 'all']. Default: 'all'\n"
1174514f5e3Sopenharmony_ci    "--log-info:                           Enable info log for components: ['all', 'gc', 'ecma',\n"
1184514f5e3Sopenharmony_ci    "                                      'interpreter', 'debugger', 'compiler', 'builtins', 'trace', 'jit',\n"
1194514f5e3Sopenharmony_ci    "                                      'baselinejit', 'all']. Default: 'all'\n"
1204514f5e3Sopenharmony_ci    "--log-warning:                        Enable warning log for components: ['all', 'gc', 'ecma',\n"
1214514f5e3Sopenharmony_ci    "                                      'interpreter', 'debugger', 'compiler', 'trace', 'jit', \n"
1224514f5e3Sopenharmony_ci    "                                      'baselinejit', 'builtins', 'all']. Default: 'all'\n"
1234514f5e3Sopenharmony_ci    "--compiler-opt-max-method:            Enable aot compiler to skip method larger than limit (KB). Default: '32'\n"
1244514f5e3Sopenharmony_ci    "--compiler-module-methods:            The number of max compiled methods in a module. Default: '100'\n"
1254514f5e3Sopenharmony_ci    "--max-unmovable-space:                Set max unmovable space capacity\n"
1264514f5e3Sopenharmony_ci    "--merge-abc:                          ABC file is merge abc. Default: 'false'\n"
1274514f5e3Sopenharmony_ci    "--compiler-opt-level:                 Optimization level configuration of aot compiler. Default: '3'\n"
1284514f5e3Sopenharmony_ci    "--options:                            Print compiler and runtime options\n"
1294514f5e3Sopenharmony_ci    "--serializer-buffer-size-limit:       Max serializer buffer size used by the VM in Byte. Default size is 2GB\n"
1304514f5e3Sopenharmony_ci    "--snapshot-file:                      Snapshot file. Default: '/system/etc/snapshot'\n"
1314514f5e3Sopenharmony_ci    "--startup-time:                       Print the start time of command execution. Default: 'false'\n"
1324514f5e3Sopenharmony_ci    "--stub-file:                          Path of file includes common stubs module compiled by stub compiler. "
1334514f5e3Sopenharmony_ci                                           "Default: 'stub.an'\n"
1344514f5e3Sopenharmony_ci    "--enable-pgo-profiler:                Enable pgo profiler to sample jsfunction call and output to file. "
1354514f5e3Sopenharmony_ci                                           "Default: 'false'\n"
1364514f5e3Sopenharmony_ci    "--enable-elements-kind:               Enable elementsKind sampling and usage. Default: 'false'\n"
1374514f5e3Sopenharmony_ci    "--enable-force-ic:                    Enable force ic for pgo. Default: 'true'\n"
1384514f5e3Sopenharmony_ci    "--compiler-pgo-hotness-threshold:     Set hotness threshold for pgo in aot compiler. Default: '2'\n"
1394514f5e3Sopenharmony_ci    "--compiler-pgo-profiler-path:         The pgo file output dir or the pgo file dir of AOT compiler. Default: ''\n"
1404514f5e3Sopenharmony_ci    "--compiler-pgo-save-min-interval:     Set the minimum time interval for automatically saving profile, "
1414514f5e3Sopenharmony_ci                                           "Unit seconds. Default: '30s'\n"
1424514f5e3Sopenharmony_ci    "--compiler-baseline-pgo:              Enable compile the baseline Ap file. "
1434514f5e3Sopenharmony_ci                                           "Default: 'false'\n"
1444514f5e3Sopenharmony_ci    "--compiler-target-triple:             CPU triple for aot compiler or stub compiler. \n"
1454514f5e3Sopenharmony_ci    "                                      values: ['x86_64-unknown-linux-gnu', 'arm-unknown-linux-gnu', \n"
1464514f5e3Sopenharmony_ci    "                                      'aarch64-unknown-linux-gnu'], Default: 'x86_64-unknown-linux-gnu'\n"
1474514f5e3Sopenharmony_ci    "--enable-print-execute-time:          Enable print execute panda file spent time\n"
1484514f5e3Sopenharmony_ci    "--compiler-verify-vtable:             Verify vtable result for aot compiler. Default: 'false'\n"
1494514f5e3Sopenharmony_ci    "--compiler-select-methods             Compiler selected methods for aot. Only work in full compiling mode\n"
1504514f5e3Sopenharmony_ci    "                                      Format:--compile-methods=record1:m1,m2,record2:m3\n"
1514514f5e3Sopenharmony_ci    "--compiler-skip-methods               Compiler skpped methods for aot. Only work in full compiling mode\n"
1524514f5e3Sopenharmony_ci    "                                      Format:--compile-skip-methods=record1:m1,m2,record2:m3\n"
1534514f5e3Sopenharmony_ci    "--target-compiler-mode                The compilation mode at the device side, including partial, full and none.\n"
1544514f5e3Sopenharmony_ci    "                                      Default: ''\n"
1554514f5e3Sopenharmony_ci    "--hap-path(Deprecated)                The path of the app hap. Default: ''\n"
1564514f5e3Sopenharmony_ci    "--hap-abc-offset(Deprecated)          The offset of the abc file in app hap. Default: '0'\n"
1574514f5e3Sopenharmony_ci    "--hap-abc-size(Deprecated)            The size of the abc file in app hap. Default: '0'\n"
1584514f5e3Sopenharmony_ci    "--compiler-fast-compile               Disable some time-consuming pass. Default: 'true'\n"
1594514f5e3Sopenharmony_ci    "--compiler-no-check                   Enable remove checks for aot compiler. Default: 'false'\n"
1604514f5e3Sopenharmony_ci    "--compiler-pipeline-host-aot          Enable pipeline host aot compiler. Default: 'false'\n"
1614514f5e3Sopenharmony_ci    "--compiler-opt-loop-peeling:          Enable loop peeling for aot compiler: Default: 'true'\n"
1624514f5e3Sopenharmony_ci    "--compiler-pkg-info                   Specify the package json info for ark aot compiler\n"
1634514f5e3Sopenharmony_ci    "--compiler-external-pkg-info          Specify the external package json info for ark aot compiler\n"
1644514f5e3Sopenharmony_ci    "--compiler-enable-external-pkg        Enable compile with external package for ark aot compiler\n"
1654514f5e3Sopenharmony_ci    "--compiler-enable-lexenv-specialization: Enable replace ldlexvar with specific values: Default: 'true'\n"
1664514f5e3Sopenharmony_ci    "--compiler-enable-native-inline:      Enable inline native function: Default: 'false'\n"
1674514f5e3Sopenharmony_ci    "--compiler-enable-lowering-builtin:   Enable lowering global object: Default: 'false'\n"
1684514f5e3Sopenharmony_ci    "--compiler-opt-array-onheap-check:    Enable TypedArray on heap check for aot compiler: Default: 'false'\n"
1694514f5e3Sopenharmony_ci    "--compiler-enable-litecg:             Enable LiteCG: Default: 'false'\n"
1704514f5e3Sopenharmony_ci    "--compiler-enable-jit:                Enable jit: Default: 'false'\n"
1714514f5e3Sopenharmony_ci    "--compiler-enable-osr:                Enable osr: Default: 'false'\n"
1724514f5e3Sopenharmony_ci    "--compiler-enable-framework-aot:      Enable frame aot: Default: 'true'\n"
1734514f5e3Sopenharmony_ci    "--compiler-enable-pgo-space:          Enable pgo space used for compiler. Default: 'true'\n"
1744514f5e3Sopenharmony_ci    "--compiler-jit-hotness-threshold:     Set hotness threshold for jit. Default: '2'\n"
1754514f5e3Sopenharmony_ci    "--compiler-jit-call-threshold:        Set call threshold for jit. Default: '0'\n"
1764514f5e3Sopenharmony_ci    "--compiler-osr-hotness-threshold:     Set hotness threshold for osr. Default: '2'\n"
1774514f5e3Sopenharmony_ci    "--compiler-force-jit-compile-main:    Enable jit compile main function: Default: 'false'\n"
1784514f5e3Sopenharmony_ci    "--compiler-trace-jit:                 Enable trace jit: Default: 'false'\n"
1794514f5e3Sopenharmony_ci    "--compiler-enable-jit-pgo:            Enable jit pgo: Default: 'true'\n"
1804514f5e3Sopenharmony_ci    "--compiler-typed-op-profiler:         Enable Typed Opcode Statistics for aot runtime. Default: 'false'\n"
1814514f5e3Sopenharmony_ci    "--compiler-opt-branch-profiling:      Enable branch profiling for aot compiler. Default: 'true'\n"
1824514f5e3Sopenharmony_ci    "--test-assert:                        Set Assert Model. Default: 'false'\n"
1834514f5e3Sopenharmony_ci    "--compiler-methods-range:             Enable aot compiler to compile only in-range methods.\n"
1844514f5e3Sopenharmony_ci    "                                      Default: '0:4294967295'\n"
1854514f5e3Sopenharmony_ci    "--compiler-codegen-options:           Compile options passed to codegen. Default: ''\n"
1864514f5e3Sopenharmony_ci    "--compiler-opt-escape-analysis:       Enable escape analysis for aot compiler. Default: 'true'\n"
1874514f5e3Sopenharmony_ci    "--compiler-trace-escape-analysis:     Enable tracing escape analysis for aot compiler. Default: 'false'\n"
1884514f5e3Sopenharmony_ci    "--compiler-opt-induction-variable:    Enable induciton variable analysis for aot compiler. Default: 'false'\n"
1894514f5e3Sopenharmony_ci    "--compiler-trace-induction-variable:  Enable tracing induction variable for aot compiler. Default: 'false'\n"
1904514f5e3Sopenharmony_ci    "--compiler-memory-analysis:           Enable memory analysis for aot compiler. Default: 'true'\n"
1914514f5e3Sopenharmony_ci    "--compiler-enable-jit-fast-compile:   Enable jit fast compile. Default: 'false'\n"
1924514f5e3Sopenharmony_ci    "--compiler-enable-jitfort:            Enable jit fort memory space. Default: 'false'\n"
1934514f5e3Sopenharmony_ci    "--compiler-codesign-disable:          Disable codesign for jit fort. Default: 'true'\n"
1944514f5e3Sopenharmony_ci    "--compiler-enable-async-copytofort:   Enable jit fort allocation and code copy in Jit thread. Default: 'true'\n"
1954514f5e3Sopenharmony_ci    "--compiler-pgo-force-dump:            Enable pgo dump not interrupted by GC. Default: 'true'\n"
1964514f5e3Sopenharmony_ci    "--async-load-abc:                     Enable asynchronous load abc. Default: 'true'\n"
1974514f5e3Sopenharmony_ci    "--async-load-abc-test:                Enable asynchronous load abc test. Default: 'false'\n"
1984514f5e3Sopenharmony_ci    "--compiler-enable-concurrent:         Enable concurrent compile(only support in ark_stub_compiler).\n"
1994514f5e3Sopenharmony_ci    "                                      Default: 'true'\n"
2004514f5e3Sopenharmony_ci    "--compiler-opt-frame-state-elimination: Enable frame state elimination. Default: 'true'\n\n";
2014514f5e3Sopenharmony_ci
2024514f5e3Sopenharmony_cibool JSRuntimeOptions::ParseCommand(const int argc, const char **argv)
2034514f5e3Sopenharmony_ci{
2044514f5e3Sopenharmony_ci    const struct option longOptions[] = {
2054514f5e3Sopenharmony_ci        {"aot-file", required_argument, nullptr, OPTION_AOT_FILE},
2064514f5e3Sopenharmony_ci        {"ark-properties", required_argument, nullptr, OPTION_ARK_PROPERTIES},
2074514f5e3Sopenharmony_ci        {"ark-bundleName", required_argument, nullptr, OPTION_ARK_BUNDLENAME},
2084514f5e3Sopenharmony_ci        {"asm-interpreter", required_argument, nullptr, OPTION_ENABLE_ASM_INTERPRETER},
2094514f5e3Sopenharmony_ci        {"asm-opcode-disable-range", required_argument, nullptr, OPTION_ASM_OPCODE_DISABLE_RANGE},
2104514f5e3Sopenharmony_ci        {"builtins-lazy", required_argument, nullptr, OPTION_ENABLE_BUILTINS_LAZY},
2114514f5e3Sopenharmony_ci        {"compiler-log", required_argument, nullptr, OPTION_COMPILER_LOG_OPT},
2124514f5e3Sopenharmony_ci        {"compiler-log-methods", required_argument, nullptr, OPTION_COMPILER_LOG_METHODS},
2134514f5e3Sopenharmony_ci        {"compiler-log-snapshot", required_argument, nullptr, OPTION_COMPILER_LOG_SNAPSHOT},
2144514f5e3Sopenharmony_ci        {"compiler-log-time", required_argument, nullptr, OPTION_COMPILER_LOG_TIME},
2154514f5e3Sopenharmony_ci        {"compiler-type-threshold", required_argument, nullptr, OPTION_COMPILER_TYPE_THRESHOLD},
2164514f5e3Sopenharmony_ci        {"enable-ark-tools", required_argument, nullptr, OPTION_ENABLE_ARK_TOOLS},
2174514f5e3Sopenharmony_ci        {"open-ark-tools", required_argument, nullptr, OPTION_OPEN_ARK_TOOLS},
2184514f5e3Sopenharmony_ci        {"pgo-trace", required_argument, nullptr, OPTION_PGO_TRACE},
2194514f5e3Sopenharmony_ci        {"compiler-trace-bc", required_argument, nullptr, OPTION_COMPILER_TRACE_BC},
2204514f5e3Sopenharmony_ci        {"compiler-trace-deopt", required_argument, nullptr, OPTION_COMPILER_TRACE_DEOPT},
2214514f5e3Sopenharmony_ci        {"compiler-trace-inline", required_argument, nullptr, OPTION_COMPILER_TRACE_INLINE},
2224514f5e3Sopenharmony_ci        {"compiler-trace-value-numbering", required_argument, nullptr, OPTION_COMPILER_TRACE_VALUE_NUMBERING},
2234514f5e3Sopenharmony_ci        {"compiler-trace-instruction-combine", required_argument, nullptr, OPTION_COMPILER_TRACE_INSTRUCTION_COMBINE},
2244514f5e3Sopenharmony_ci        {"compiler-max-inline-bytecodes", required_argument, nullptr, OPTION_COMPILER_MAX_INLINE_BYTECODES},
2254514f5e3Sopenharmony_ci        {"compiler-deopt-threshold", required_argument, nullptr, OPTION_COMPILER_DEOPT_THRESHOLD},
2264514f5e3Sopenharmony_ci        {"compiler-device-state", required_argument, nullptr, OPTION_COMPILER_DEVICE_STATE},
2274514f5e3Sopenharmony_ci        {"compiler-thermal-level", required_argument, nullptr, OPTION_COMPILER_THERMAL_LEVEL},
2284514f5e3Sopenharmony_ci        {"compiler-stress-deopt", required_argument, nullptr, OPTION_COMPILER_STRESS_DEOPT},
2294514f5e3Sopenharmony_ci        {"compiler-opt-code-profiler", required_argument, nullptr, OPTION_COMPILER_OPT_CODE_PROFILER},
2304514f5e3Sopenharmony_ci        {"compiler-opt-bc-range", required_argument, nullptr, OPTION_COMPILER_OPT_BC_RANGE},
2314514f5e3Sopenharmony_ci        {"compiler-opt-bc-range-help", required_argument, nullptr, OPTION_COMPILER_OPT_BC_RANGE_HELP},
2324514f5e3Sopenharmony_ci        {"enable-force-gc", required_argument, nullptr, OPTION_ENABLE_FORCE_GC},
2334514f5e3Sopenharmony_ci        {"enable-eden-gc", required_argument, nullptr, OPTION_ENABLE_EDEN_GC},
2344514f5e3Sopenharmony_ci        {"enable-ic", required_argument, nullptr, OPTION_ENABLE_IC},
2354514f5e3Sopenharmony_ci        {"enable-runtime-stat", required_argument, nullptr, OPTION_ENABLE_RUNTIME_STAT},
2364514f5e3Sopenharmony_ci        {"compiler-opt-constant-folding", required_argument, nullptr, OPTION_COMPILER_OPT_CONSTANT_FOLDING},
2374514f5e3Sopenharmony_ci        {"compiler-opt-array-bounds-check-elimination", required_argument, nullptr,
2384514f5e3Sopenharmony_ci            OPTION_COMPILER_OPT_ARRAY_BOUNDS_CHECK_ELIMINATION},
2394514f5e3Sopenharmony_ci        {"compiler-opt-type-lowering", required_argument, nullptr, OPTION_COMPILER_OPT_TYPE_LOWERING},
2404514f5e3Sopenharmony_ci        {"compiler-opt-early-elimination", required_argument, nullptr, OPTION_COMPILER_OPT_EARLY_ELIMINATION},
2414514f5e3Sopenharmony_ci        {"compiler-opt-later-elimination", required_argument, nullptr, OPTION_COMPILER_OPT_LATER_ELIMINATION},
2424514f5e3Sopenharmony_ci        {"compiler-opt-instr-combine", required_argument, nullptr, OPTION_COMPILER_OPT_INSTRUCTIONE_COMBINE},
2434514f5e3Sopenharmony_ci        {"compiler-opt-string", required_argument, nullptr, OPTION_COMPILER_OPT_STRING},
2444514f5e3Sopenharmony_ci        {"compiler-opt-value-numbering", required_argument, nullptr, OPTION_COMPILER_OPT_VALUE_NUMBERING},
2454514f5e3Sopenharmony_ci        {"compiler-opt-new-value-numbering", required_argument, nullptr, OPTION_COMPILER_OPT_NEW_VALUE_NUMBERING},
2464514f5e3Sopenharmony_ci        {"compiler-opt-inlining", required_argument, nullptr, OPTION_COMPILER_OPT_INLINING},
2474514f5e3Sopenharmony_ci        {"compiler-opt-pgotype", required_argument, nullptr, OPTION_COMPILER_OPT_PGOTYPE},
2484514f5e3Sopenharmony_ci        {"compiler-opt-track-field", required_argument, nullptr, OPTION_COMPILER_OPT_TRACK_FIELD},
2494514f5e3Sopenharmony_ci        {"entry-point", required_argument, nullptr, OPTION_ENTRY_POINT},
2504514f5e3Sopenharmony_ci        {"force-full-gc", required_argument, nullptr, OPTION_FORCE_FULL_GC},
2514514f5e3Sopenharmony_ci        {"force-shared-gc-frequency", required_argument, nullptr, OPTION_ENABLE_FORCE_SHARED_GC_FREQUENCY},
2524514f5e3Sopenharmony_ci        {"gc-thread-num", required_argument, nullptr, OPTION_GC_THREADNUM},
2534514f5e3Sopenharmony_ci        {"heap-size-limit", required_argument, nullptr, OPTION_HEAP_SIZE_LIMIT},
2544514f5e3Sopenharmony_ci        {"help", no_argument, nullptr, OPTION_HELP},
2554514f5e3Sopenharmony_ci        {"icu-data-path", required_argument, nullptr, OPTION_ICU_DATA_PATH},
2564514f5e3Sopenharmony_ci        {"enable-worker", required_argument, nullptr, OPTION_ENABLE_WORKER},
2574514f5e3Sopenharmony_ci        {"log-components", required_argument, nullptr, OPTION_LOG_COMPONENTS},
2584514f5e3Sopenharmony_ci        {"log-debug", required_argument, nullptr, OPTION_LOG_DEBUG},
2594514f5e3Sopenharmony_ci        {"log-error", required_argument, nullptr, OPTION_LOG_ERROR},
2604514f5e3Sopenharmony_ci        {"log-fatal", required_argument, nullptr, OPTION_LOG_FATAL},
2614514f5e3Sopenharmony_ci        {"log-info", required_argument, nullptr, OPTION_LOG_INFO},
2624514f5e3Sopenharmony_ci        {"log-level", required_argument, nullptr, OPTION_LOG_LEVEL},
2634514f5e3Sopenharmony_ci        {"log-warning", required_argument, nullptr, OPTION_LOG_WARNING},
2644514f5e3Sopenharmony_ci        {"gc-long-paused-time", required_argument, nullptr, OPTION_GC_LONG_PAUSED_TIME},
2654514f5e3Sopenharmony_ci        {"compiler-opt-max-method", required_argument, nullptr, OPTION_COMPILER_OPT_MAX_METHOD},
2664514f5e3Sopenharmony_ci        {"compiler-module-methods", required_argument, nullptr, OPTION_COMPILER_MODULE_METHODS},
2674514f5e3Sopenharmony_ci        {"max-unmovable-space", required_argument, nullptr, OPTION_MAX_UNMOVABLE_SPACE},
2684514f5e3Sopenharmony_ci        {"merge-abc", required_argument, nullptr, OPTION_MERGE_ABC},
2694514f5e3Sopenharmony_ci        {"enable-context", required_argument, nullptr, OPTION_ENABLE_CONTEXT},
2704514f5e3Sopenharmony_ci        {"compiler-opt-level", required_argument, nullptr, OPTION_ASM_OPT_LEVEL},
2714514f5e3Sopenharmony_ci        {"reloc-mode", required_argument, nullptr, OPTION_RELOCATION_MODE},
2724514f5e3Sopenharmony_ci        {"serializer-buffer-size-limit", required_argument, nullptr, OPTION_SERIALIZER_BUFFER_SIZE_LIMIT},
2734514f5e3Sopenharmony_ci        {"startup-time", required_argument, nullptr, OPTION_STARTUP_TIME},
2744514f5e3Sopenharmony_ci        {"stub-file", required_argument, nullptr, OPTION_STUB_FILE},
2754514f5e3Sopenharmony_ci        {"compiler-target-triple", required_argument, nullptr, OPTION_COMPILER_TARGET_TRIPLE},
2764514f5e3Sopenharmony_ci        {"enable-print-execute-time", required_argument, nullptr, OPTION_PRINT_EXECUTE_TIME},
2774514f5e3Sopenharmony_ci        {"enable-pgo-profiler", required_argument, nullptr, OPTION_ENABLE_PGO_PROFILER},
2784514f5e3Sopenharmony_ci        {"enable-elements-kind", required_argument, nullptr, OPTION_ENABLE_ELEMENTSKIND},
2794514f5e3Sopenharmony_ci        {"enable-force-ic", required_argument, nullptr, OPTION_ENABLE_FORCE_IC},
2804514f5e3Sopenharmony_ci        {"compiler-pgo-profiler-path", required_argument, nullptr, OPTION_COMPILER_PGO_PROFILER_PATH},
2814514f5e3Sopenharmony_ci        {"compiler-pgo-hotness-threshold", required_argument, nullptr, OPTION_COMPILER_PGO_HOTNESS_THRESHOLD},
2824514f5e3Sopenharmony_ci        {"compiler-pgo-save-min-interval", required_argument, nullptr, OPTION_COMPILER_PGO_SAVE_MIN_INTERVAL},
2834514f5e3Sopenharmony_ci        {"compiler-baseline-pgo", required_argument, nullptr, OPTION_COMPILER_BASELINE_PGO},
2844514f5e3Sopenharmony_ci        {"compiler-verify-vtable", required_argument, nullptr, OPTION_COMPILER_VERIFY_VTABLE},
2854514f5e3Sopenharmony_ci        {"compiler-select-methods", required_argument, nullptr, OPTION_COMPILER_SELECT_METHODS},
2864514f5e3Sopenharmony_ci        {"compiler-skip-methods", required_argument, nullptr, OPTION_COMPILER_SKIP_METHODS},
2874514f5e3Sopenharmony_ci        {"target-compiler-mode", required_argument, nullptr, OPTION_TARGET_COMPILER_MODE},
2884514f5e3Sopenharmony_ci        {"hap-path", required_argument, nullptr, OPTION_HAP_PATH},
2894514f5e3Sopenharmony_ci        {"hap-abc-offset", required_argument, nullptr, OPTION_HAP_ABC_OFFSET},
2904514f5e3Sopenharmony_ci        {"hap-abc-size", required_argument, nullptr, OPTION_HAP_ABC_SIZE},
2914514f5e3Sopenharmony_ci        {"compiler-no-check", required_argument, nullptr, OPTION_COMPILER_NOCHECK},
2924514f5e3Sopenharmony_ci        {"compiler-pipeline-host-aot", required_argument, nullptr, OPTION_COMPILER_PIPELINE_HOST_AOT},
2934514f5e3Sopenharmony_ci        {"compiler-fast-compile", required_argument, nullptr, OPTION_FAST_AOT_COMPILE_MODE},
2944514f5e3Sopenharmony_ci        {"compiler-opt-loop-peeling", required_argument, nullptr, OPTION_COMPILER_OPT_LOOP_PEELING},
2954514f5e3Sopenharmony_ci        {"compiler-opt-array-onheap-check", required_argument, nullptr, OPTION_COMPILER_OPT_ON_HEAP_CHECK},
2964514f5e3Sopenharmony_ci        {"compiler-pkg-info", required_argument, nullptr, OPTION_COMPILER_PKG_INFO},
2974514f5e3Sopenharmony_ci        {"compiler-external-pkg-info", required_argument, nullptr, OPTION_COMPILER_EXTERNAL_PKG_INFO},
2984514f5e3Sopenharmony_ci        {"compiler-enable-external-pkg", required_argument, nullptr, OPTION_COMPILER_ENABLE_EXTERNAL_PKG},
2994514f5e3Sopenharmony_ci        {"compiler-framework-abc-path", required_argument, nullptr, OPTION_COMPILER_FRAMEWORK_ABC_PATH},
3004514f5e3Sopenharmony_ci        {"compiler-enable-lexenv-specialization", required_argument, nullptr,
3014514f5e3Sopenharmony_ci            OPTION_COMPILER_ENABLE_LEXENV_SPECIALIZATION},
3024514f5e3Sopenharmony_ci        {"compiler-enable-native-inline", required_argument, nullptr, OPTION_COMPILER_ENABLE_NATIVE_INLINE},
3034514f5e3Sopenharmony_ci        {"compiler-enable-lowering-builtin", required_argument, nullptr, OPTION_COMPILER_ENABLE_LOWERING_BUILTIN},
3044514f5e3Sopenharmony_ci        {"compiler-enable-litecg", required_argument, nullptr, OPTION_COMPILER_ENABLE_LITECG},
3054514f5e3Sopenharmony_ci        {"compiler-enable-jit", required_argument, nullptr, OPTION_COMPILER_ENABLE_JIT},
3064514f5e3Sopenharmony_ci        {"compiler-enable-osr", required_argument, nullptr, OPTION_COMPILER_ENABLE_OSR},
3074514f5e3Sopenharmony_ci        {"compiler-trace-jit", required_argument, nullptr, OPTION_COMPILER_TRACE_JIT},
3084514f5e3Sopenharmony_ci        {"compiler-jit-hotness-threshold", required_argument, nullptr, OPTION_COMPILER_JIT_HOTNESS_THRESHOLD},
3094514f5e3Sopenharmony_ci        {"compiler-jit-call-threshold", required_argument, nullptr, OPTION_COMPILER_JIT_CALL_THRESHOLD},
3104514f5e3Sopenharmony_ci        {"compiler-osr-hotness-threshold", required_argument, nullptr, OPTION_COMPILER_OSR_HOTNESS_THRESHOLD},
3114514f5e3Sopenharmony_ci        {"compiler-force-jit-compile-main", required_argument, nullptr, OPTION_COMPILER_FORCE_JIT_COMPILE_MAIN},
3124514f5e3Sopenharmony_ci        {"compiler-enable-jit-pgo", required_argument, nullptr, OPTION_COMPILER_ENABLE_JIT_PGO},
3134514f5e3Sopenharmony_ci        {"compiler-enable-aot-pgo", required_argument, nullptr, OPTION_COMPILER_ENABLE_AOT_PGO},
3144514f5e3Sopenharmony_ci        {"compiler-enable-framework-aot", required_argument, nullptr, OPTION_COMPILER_ENABLE_FRAMEWORK_AOT},
3154514f5e3Sopenharmony_ci        {"compiler-enable-profile-dump", required_argument, nullptr, OPTION_COMPILER_ENABLE_PROPFILE_DUMP},
3164514f5e3Sopenharmony_ci        {"compiler-typed-op-profiler", required_argument, nullptr, OPTION_COMPILER_TYPED_OP_PROFILER},
3174514f5e3Sopenharmony_ci        {"compiler-opt-branch-profiling", required_argument, nullptr, OPTION_COMPILER_OPT_BRANCH_PROFILING},
3184514f5e3Sopenharmony_ci        {"test-assert", required_argument, nullptr, OPTION_TEST_ASSERT},
3194514f5e3Sopenharmony_ci        {"compiler-methods-range", required_argument, nullptr, OPTION_COMPILER_METHODS_RANGE},
3204514f5e3Sopenharmony_ci        {"compiler-codegen-options", required_argument, nullptr, OPTION_COMPILER_CODEGEN_OPT},
3214514f5e3Sopenharmony_ci        {"compiler-opt-escape-analysis", required_argument, nullptr, OPTION_COMPILER_OPT_ESCAPE_ANALYSIS},
3224514f5e3Sopenharmony_ci        {"compiler-trace-escape-analysis", required_argument, nullptr, OPTION_COMPILER_TRACE_ESCAPE_ANALYSIS},
3234514f5e3Sopenharmony_ci        {"compiler-opt-induction-variable", required_argument, nullptr, OPTION_COMPILER_OPT_INDUCTION_VARIABLE},
3244514f5e3Sopenharmony_ci        {"compiler-trace-induction-variable", required_argument, nullptr, OPTION_COMPILER_TRACE_INDUCTION_VARIABLE},
3254514f5e3Sopenharmony_ci        {"compiler-memory-analysis", required_argument, nullptr, OPTION_COMPILER_MEMORY_ANALYSIS},
3264514f5e3Sopenharmony_ci        {"compiler-check-pgo-version", required_argument, nullptr, OPTION_COMPILER_CHECK_PGO_VERSION},
3274514f5e3Sopenharmony_ci        {"compiler-enable-baselinejit", required_argument, nullptr, OPTION_COMPILER_ENABLE_BASELINEJIT},
3284514f5e3Sopenharmony_ci        {"compiler-baselinejit-hotness-threshold", required_argument, nullptr, OPTION_COMPILER_BASELINEJIT_HOTNESS_THRESHOLD},
3294514f5e3Sopenharmony_ci        {"compiler-force-baselinejit-compile-main", required_argument, nullptr, OPTION_COMPILER_FORCE_BASELINEJIT_COMPILE_MAIN},
3304514f5e3Sopenharmony_ci        {"compiler-enable-jit-fast-compile", required_argument, nullptr, OPTION_COMPILER_ENABLE_JIT_FAST_COMPILE},
3314514f5e3Sopenharmony_ci        {"compiler-enable-jitfort", required_argument, nullptr, OPTION_ENABLE_JITFORT},
3324514f5e3Sopenharmony_ci        {"compiler-codesign-disable", required_argument, nullptr, OPTION_CODESIGN_DISABLE},
3334514f5e3Sopenharmony_ci        {"compiler-enable-async-copytofort", required_argument, nullptr, OPTION_ENABLE_ASYNC_COPYTOFORT},
3344514f5e3Sopenharmony_ci        {"compiler-pgo-force-dump", required_argument, nullptr, OPTION_COMPILER_PGO_FORCE_DUMP},
3354514f5e3Sopenharmony_ci        {"compiler-enable-pgo-space", required_argument, nullptr, OPTION_COMPILER_ENABLE_PGO_SPACE},
3364514f5e3Sopenharmony_ci        {"async-load-abc", required_argument, nullptr, OPTION_ASYNC_LOAD_ABC},
3374514f5e3Sopenharmony_ci        {"async-load-abc-test", required_argument, nullptr, OPTION_ASYNC_LOAD_ABC_TEST},
3384514f5e3Sopenharmony_ci        {"compiler-enable-concurrent", required_argument, nullptr, OPTION_COMPILER_ENABLE_CONCURRENT},
3394514f5e3Sopenharmony_ci        {"compiler-opt-frame-state-elimination", required_argument, nullptr,
3404514f5e3Sopenharmony_ci            OPTION_COMPILER_OPT_FRAME_STATE_ELIMINATION},
3414514f5e3Sopenharmony_ci        {nullptr, 0, nullptr, 0},
3424514f5e3Sopenharmony_ci    };
3434514f5e3Sopenharmony_ci
3444514f5e3Sopenharmony_ci    int index = 0;
3454514f5e3Sopenharmony_ci    opterr = 0;
3464514f5e3Sopenharmony_ci    bool ret = false;
3474514f5e3Sopenharmony_ci    int option = 0;
3484514f5e3Sopenharmony_ci    arg_list_t argListStr;
3494514f5e3Sopenharmony_ci    uint32_t argUint32 = 0;
3504514f5e3Sopenharmony_ci    uint64_t argUInt64 = 0;
3514514f5e3Sopenharmony_ci    int argInt = 0;
3524514f5e3Sopenharmony_ci    bool argBool = false;
3534514f5e3Sopenharmony_ci    double argDouble = 0.0;
3544514f5e3Sopenharmony_ci    static std::string COLON = ":";
3554514f5e3Sopenharmony_ci
3564514f5e3Sopenharmony_ci    if (argc <= 1) {
3574514f5e3Sopenharmony_ci        return true;
3584514f5e3Sopenharmony_ci    }
3594514f5e3Sopenharmony_ci
3604514f5e3Sopenharmony_ci    while (true) {
3614514f5e3Sopenharmony_ci        option = getopt_long_only(argc, const_cast<char **>(argv), "", longOptions, &index);
3624514f5e3Sopenharmony_ci        LOG_ECMA(INFO) << "option: " << option << ", optopt: " << optopt << ", optind: " << optind;
3634514f5e3Sopenharmony_ci
3644514f5e3Sopenharmony_ci        if (optind <= 0 || optind > argc) {
3654514f5e3Sopenharmony_ci            return false;
3664514f5e3Sopenharmony_ci        }
3674514f5e3Sopenharmony_ci
3684514f5e3Sopenharmony_ci        if (option == -1) {
3694514f5e3Sopenharmony_ci            return true;
3704514f5e3Sopenharmony_ci        }
3714514f5e3Sopenharmony_ci
3724514f5e3Sopenharmony_ci        // unknown option or required_argument option has no argument
3734514f5e3Sopenharmony_ci        if (option == OPTION_DEFAULT) {
3744514f5e3Sopenharmony_ci            ret = SetDefaultValue(const_cast<char *>(argv[optind - 1]));
3754514f5e3Sopenharmony_ci            if (ret) {
3764514f5e3Sopenharmony_ci                continue;
3774514f5e3Sopenharmony_ci            } else {
3784514f5e3Sopenharmony_ci                return ret;
3794514f5e3Sopenharmony_ci            }
3804514f5e3Sopenharmony_ci        }
3814514f5e3Sopenharmony_ci
3824514f5e3Sopenharmony_ci        WasSet(option);
3834514f5e3Sopenharmony_ci        switch (option) {
3844514f5e3Sopenharmony_ci            case OPTION_AOT_FILE:
3854514f5e3Sopenharmony_ci                SetAOTOutputFile(optarg);
3864514f5e3Sopenharmony_ci                ecmascript::AnFileDataManager::GetInstance()->SetEnable(true);
3874514f5e3Sopenharmony_ci                break;
3884514f5e3Sopenharmony_ci            case OPTION_ARK_PROPERTIES:
3894514f5e3Sopenharmony_ci                ret = ParseIntParam("ark-properties", &argInt);
3904514f5e3Sopenharmony_ci                if (ret) {
3914514f5e3Sopenharmony_ci                    SetArkProperties(argInt);
3924514f5e3Sopenharmony_ci                } else {
3934514f5e3Sopenharmony_ci                    return false;
3944514f5e3Sopenharmony_ci                }
3954514f5e3Sopenharmony_ci                break;
3964514f5e3Sopenharmony_ci            case OPTION_ARK_BUNDLENAME:
3974514f5e3Sopenharmony_ci                SetArkBundleName(optarg);
3984514f5e3Sopenharmony_ci                break;
3994514f5e3Sopenharmony_ci            case OPTION_ENABLE_ASM_INTERPRETER:
4004514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
4014514f5e3Sopenharmony_ci                if (ret) {
4024514f5e3Sopenharmony_ci                    SetEnableAsmInterpreter(argBool);
4034514f5e3Sopenharmony_ci                } else {
4044514f5e3Sopenharmony_ci                    return false;
4054514f5e3Sopenharmony_ci                }
4064514f5e3Sopenharmony_ci                break;
4074514f5e3Sopenharmony_ci            case OPTION_ASM_OPCODE_DISABLE_RANGE:
4084514f5e3Sopenharmony_ci                SetAsmOpcodeDisableRange(optarg);
4094514f5e3Sopenharmony_ci                break;
4104514f5e3Sopenharmony_ci            case OPTION_ENABLE_BUILTINS_LAZY:
4114514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
4124514f5e3Sopenharmony_ci                if (ret) {
4134514f5e3Sopenharmony_ci                    SetEnableBuiltinsLazy(argBool);
4144514f5e3Sopenharmony_ci                } else {
4154514f5e3Sopenharmony_ci                    return false;
4164514f5e3Sopenharmony_ci                }
4174514f5e3Sopenharmony_ci                break;
4184514f5e3Sopenharmony_ci            case OPTION_COMPILER_LOG_OPT:
4194514f5e3Sopenharmony_ci                SetCompilerLogOption(optarg);
4204514f5e3Sopenharmony_ci                break;
4214514f5e3Sopenharmony_ci            case OPTION_COMPILER_LOG_SNAPSHOT:
4224514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
4234514f5e3Sopenharmony_ci                if (ret) {
4244514f5e3Sopenharmony_ci                    SetCompilerLogSnapshot(argBool);
4254514f5e3Sopenharmony_ci                } else {
4264514f5e3Sopenharmony_ci                    return false;
4274514f5e3Sopenharmony_ci                }
4284514f5e3Sopenharmony_ci                break;
4294514f5e3Sopenharmony_ci            case OPTION_COMPILER_LOG_TIME:
4304514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
4314514f5e3Sopenharmony_ci                if (ret) {
4324514f5e3Sopenharmony_ci                    SetCompilerLogTime(argBool);
4334514f5e3Sopenharmony_ci                } else {
4344514f5e3Sopenharmony_ci                    return false;
4354514f5e3Sopenharmony_ci                }
4364514f5e3Sopenharmony_ci                break;
4374514f5e3Sopenharmony_ci            case OPTION_ENABLE_ARK_TOOLS:
4384514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
4394514f5e3Sopenharmony_ci                if (ret) {
4404514f5e3Sopenharmony_ci                    SetEnableArkTools(argBool);
4414514f5e3Sopenharmony_ci                } else {
4424514f5e3Sopenharmony_ci                    return false;
4434514f5e3Sopenharmony_ci                }
4444514f5e3Sopenharmony_ci                break;
4454514f5e3Sopenharmony_ci            case OPTION_OPEN_ARK_TOOLS:
4464514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
4474514f5e3Sopenharmony_ci                if (ret) {
4484514f5e3Sopenharmony_ci                    SetOpenArkTools(argBool);
4494514f5e3Sopenharmony_ci                } else {
4504514f5e3Sopenharmony_ci                    return false;
4514514f5e3Sopenharmony_ci                }
4524514f5e3Sopenharmony_ci                break;
4534514f5e3Sopenharmony_ci            case OPTION_PGO_TRACE:
4544514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
4554514f5e3Sopenharmony_ci                if (ret) {
4564514f5e3Sopenharmony_ci                    SetPGOTrace(argBool);
4574514f5e3Sopenharmony_ci                } else {
4584514f5e3Sopenharmony_ci                    return false;
4594514f5e3Sopenharmony_ci                }
4604514f5e3Sopenharmony_ci                break;
4614514f5e3Sopenharmony_ci            case OPTION_COMPILER_TRACE_BC:
4624514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
4634514f5e3Sopenharmony_ci                if (ret) {
4644514f5e3Sopenharmony_ci                    SetTraceBc(argBool);
4654514f5e3Sopenharmony_ci                } else {
4664514f5e3Sopenharmony_ci                    return false;
4674514f5e3Sopenharmony_ci                }
4684514f5e3Sopenharmony_ci                break;
4694514f5e3Sopenharmony_ci            case OPTION_COMPILER_TRACE_DEOPT:
4704514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
4714514f5e3Sopenharmony_ci                if (ret) {
4724514f5e3Sopenharmony_ci                    SetTraceDeopt(argBool);
4734514f5e3Sopenharmony_ci                } else {
4744514f5e3Sopenharmony_ci                    return false;
4754514f5e3Sopenharmony_ci                }
4764514f5e3Sopenharmony_ci                break;
4774514f5e3Sopenharmony_ci            case OPTION_COMPILER_TRACE_INLINE:
4784514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
4794514f5e3Sopenharmony_ci                if (ret) {
4804514f5e3Sopenharmony_ci                    SetTraceInline(argBool);
4814514f5e3Sopenharmony_ci                } else {
4824514f5e3Sopenharmony_ci                    return false;
4834514f5e3Sopenharmony_ci                }
4844514f5e3Sopenharmony_ci                break;
4854514f5e3Sopenharmony_ci            case OPTION_COMPILER_TRACE_VALUE_NUMBERING:
4864514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
4874514f5e3Sopenharmony_ci                if (ret) {
4884514f5e3Sopenharmony_ci                    SetTraceValueNumbering(argBool);
4894514f5e3Sopenharmony_ci                } else {
4904514f5e3Sopenharmony_ci                    return false;
4914514f5e3Sopenharmony_ci                }
4924514f5e3Sopenharmony_ci                break;
4934514f5e3Sopenharmony_ci            case OPTION_COMPILER_TRACE_INSTRUCTION_COMBINE:
4944514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
4954514f5e3Sopenharmony_ci                if (ret) {
4964514f5e3Sopenharmony_ci                    SetTraceInstructionCombine(argBool);
4974514f5e3Sopenharmony_ci                } else {
4984514f5e3Sopenharmony_ci                    return false;
4994514f5e3Sopenharmony_ci                }
5004514f5e3Sopenharmony_ci                break;
5014514f5e3Sopenharmony_ci            case OPTION_COMPILER_MAX_INLINE_BYTECODES:
5024514f5e3Sopenharmony_ci                ret = ParseUint32Param("max-inline-bytecodes", &argUint32);
5034514f5e3Sopenharmony_ci                if (ret) {
5044514f5e3Sopenharmony_ci                    SetMaxInlineBytecodes(argUint32);
5054514f5e3Sopenharmony_ci                } else {
5064514f5e3Sopenharmony_ci                    return false;
5074514f5e3Sopenharmony_ci                }
5084514f5e3Sopenharmony_ci                break;
5094514f5e3Sopenharmony_ci            case OPTION_COMPILER_DEOPT_THRESHOLD:
5104514f5e3Sopenharmony_ci                ret = ParseUint32Param("deopt-threshol", &argUint32);
5114514f5e3Sopenharmony_ci                if (ret) {
5124514f5e3Sopenharmony_ci                    SetDeoptThreshold(argUint32);
5134514f5e3Sopenharmony_ci                } else {
5144514f5e3Sopenharmony_ci                    return false;
5154514f5e3Sopenharmony_ci                }
5164514f5e3Sopenharmony_ci                break;
5174514f5e3Sopenharmony_ci            case OPTION_COMPILER_DEVICE_STATE:
5184514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
5194514f5e3Sopenharmony_ci                if (ret) {
5204514f5e3Sopenharmony_ci                    SetDeviceState(argBool);
5214514f5e3Sopenharmony_ci                } else {
5224514f5e3Sopenharmony_ci                    return false;
5234514f5e3Sopenharmony_ci                }
5244514f5e3Sopenharmony_ci                break;
5254514f5e3Sopenharmony_ci            case OPTION_COMPILER_THERMAL_LEVEL:
5264514f5e3Sopenharmony_ci                ret = ParseIntParam("compiler-thermal-level", &argInt);
5274514f5e3Sopenharmony_ci                if (ret) {
5284514f5e3Sopenharmony_ci                    SetThermalLevel(argInt);
5294514f5e3Sopenharmony_ci                } else {
5304514f5e3Sopenharmony_ci                    return false;
5314514f5e3Sopenharmony_ci                }
5324514f5e3Sopenharmony_ci                break;
5334514f5e3Sopenharmony_ci            case OPTION_COMPILER_STRESS_DEOPT:
5344514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
5354514f5e3Sopenharmony_ci                if (ret) {
5364514f5e3Sopenharmony_ci                    SetStressDeopt(argBool);
5374514f5e3Sopenharmony_ci                } else {
5384514f5e3Sopenharmony_ci                    return false;
5394514f5e3Sopenharmony_ci                }
5404514f5e3Sopenharmony_ci                break;
5414514f5e3Sopenharmony_ci            case OPTION_COMPILER_OPT_CODE_PROFILER:
5424514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
5434514f5e3Sopenharmony_ci                if (ret) {
5444514f5e3Sopenharmony_ci                    SetOptCodeProfiler(argBool);
5454514f5e3Sopenharmony_ci                } else {
5464514f5e3Sopenharmony_ci                    return false;
5474514f5e3Sopenharmony_ci                }
5484514f5e3Sopenharmony_ci                break;
5494514f5e3Sopenharmony_ci            case OPTION_COMPILER_OPT_BC_RANGE:
5504514f5e3Sopenharmony_ci                SetOptCodeRange(optarg);
5514514f5e3Sopenharmony_ci                break;
5524514f5e3Sopenharmony_ci            case OPTION_COMPILER_OPT_BC_RANGE_HELP:
5534514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
5544514f5e3Sopenharmony_ci                if (ret) {
5554514f5e3Sopenharmony_ci                    std::string helpInfo = kungfu::GetHelpForEcmaCodeListForRange();
5564514f5e3Sopenharmony_ci                    LOG_COMPILER(ERROR) << helpInfo.c_str();
5574514f5e3Sopenharmony_ci                    exit(1);
5584514f5e3Sopenharmony_ci                }
5594514f5e3Sopenharmony_ci                break;
5604514f5e3Sopenharmony_ci            case OPTION_ENABLE_FORCE_GC:
5614514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
5624514f5e3Sopenharmony_ci                if (ret) {
5634514f5e3Sopenharmony_ci                    SetEnableForceGC(argBool);
5644514f5e3Sopenharmony_ci                } else {
5654514f5e3Sopenharmony_ci                    return false;
5664514f5e3Sopenharmony_ci                }
5674514f5e3Sopenharmony_ci                break;
5684514f5e3Sopenharmony_ci            case OPTION_ENABLE_EDEN_GC:
5694514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
5704514f5e3Sopenharmony_ci                if (ret) {
5714514f5e3Sopenharmony_ci                    SetEnableEdenGC(argBool);
5724514f5e3Sopenharmony_ci                } else {
5734514f5e3Sopenharmony_ci                    return false;
5744514f5e3Sopenharmony_ci                }
5754514f5e3Sopenharmony_ci                break;
5764514f5e3Sopenharmony_ci            case OPTION_FORCE_FULL_GC:
5774514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
5784514f5e3Sopenharmony_ci                if (ret) {
5794514f5e3Sopenharmony_ci                    SetForceFullGC(argBool);
5804514f5e3Sopenharmony_ci                } else {
5814514f5e3Sopenharmony_ci                    return false;
5824514f5e3Sopenharmony_ci                }
5834514f5e3Sopenharmony_ci                break;
5844514f5e3Sopenharmony_ci            case OPTION_ENABLE_FORCE_SHARED_GC_FREQUENCY:
5854514f5e3Sopenharmony_ci                ret = ParseUint32Param("force-shared-gc-frequency", &argUint32);
5864514f5e3Sopenharmony_ci                if (ret) {
5874514f5e3Sopenharmony_ci                    SetForceSharedGCFrequency(argUint32);
5884514f5e3Sopenharmony_ci                } else {
5894514f5e3Sopenharmony_ci                    return false;
5904514f5e3Sopenharmony_ci                }
5914514f5e3Sopenharmony_ci                break;
5924514f5e3Sopenharmony_ci            case OPTION_ENABLE_IC:
5934514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
5944514f5e3Sopenharmony_ci                if (ret) {
5954514f5e3Sopenharmony_ci                    SetEnableIC(argBool);
5964514f5e3Sopenharmony_ci                } else {
5974514f5e3Sopenharmony_ci                    return false;
5984514f5e3Sopenharmony_ci                }
5994514f5e3Sopenharmony_ci                break;
6004514f5e3Sopenharmony_ci            case OPTION_ENABLE_RUNTIME_STAT:
6014514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
6024514f5e3Sopenharmony_ci                if (ret) {
6034514f5e3Sopenharmony_ci                    SetEnableRuntimeStat(argBool);
6044514f5e3Sopenharmony_ci                } else {
6054514f5e3Sopenharmony_ci                    return false;
6064514f5e3Sopenharmony_ci                }
6074514f5e3Sopenharmony_ci                break;
6084514f5e3Sopenharmony_ci            case OPTION_GC_THREADNUM:
6094514f5e3Sopenharmony_ci                ret = ParseUint32Param("gc-thread-num", &argUint32);
6104514f5e3Sopenharmony_ci                if (ret) {
6114514f5e3Sopenharmony_ci                    SetGcThreadNum(argUint32);
6124514f5e3Sopenharmony_ci                } else {
6134514f5e3Sopenharmony_ci                    return false;
6144514f5e3Sopenharmony_ci                }
6154514f5e3Sopenharmony_ci                break;
6164514f5e3Sopenharmony_ci            case OPTION_HEAP_SIZE_LIMIT:
6174514f5e3Sopenharmony_ci                ret = ParseUint32Param("heap-size-limit", &argUint32);
6184514f5e3Sopenharmony_ci                if (ret) {
6194514f5e3Sopenharmony_ci                    SetHeapSizeLimit(argUint32);
6204514f5e3Sopenharmony_ci                } else {
6214514f5e3Sopenharmony_ci                    return false;
6224514f5e3Sopenharmony_ci                }
6234514f5e3Sopenharmony_ci                break;
6244514f5e3Sopenharmony_ci            case OPTION_HELP:
6254514f5e3Sopenharmony_ci                return false;
6264514f5e3Sopenharmony_ci            case OPTION_ICU_DATA_PATH:
6274514f5e3Sopenharmony_ci                SetIcuDataPath(optarg);
6284514f5e3Sopenharmony_ci                break;
6294514f5e3Sopenharmony_ci            case OPTION_ENABLE_WORKER:
6304514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
6314514f5e3Sopenharmony_ci                if (ret) {
6324514f5e3Sopenharmony_ci                    SetIsWorker(argBool);
6334514f5e3Sopenharmony_ci                } else {
6344514f5e3Sopenharmony_ci                    return false;
6354514f5e3Sopenharmony_ci                }
6364514f5e3Sopenharmony_ci                break;
6374514f5e3Sopenharmony_ci            case OPTION_LOG_COMPONENTS:
6384514f5e3Sopenharmony_ci                ParseListArgParam(optarg, &argListStr, COLON);
6394514f5e3Sopenharmony_ci                SetLogComponents(argListStr);
6404514f5e3Sopenharmony_ci                break;
6414514f5e3Sopenharmony_ci            case OPTION_LOG_DEBUG:
6424514f5e3Sopenharmony_ci                ParseListArgParam(optarg, &argListStr, COLON);
6434514f5e3Sopenharmony_ci                SetLogDebug(argListStr);
6444514f5e3Sopenharmony_ci                break;
6454514f5e3Sopenharmony_ci            case OPTION_LOG_ERROR:
6464514f5e3Sopenharmony_ci                ParseListArgParam(optarg, &argListStr, COLON);
6474514f5e3Sopenharmony_ci                SetLogError(argListStr);
6484514f5e3Sopenharmony_ci                break;
6494514f5e3Sopenharmony_ci            case OPTION_LOG_FATAL:
6504514f5e3Sopenharmony_ci                ParseListArgParam(optarg, &argListStr, COLON);
6514514f5e3Sopenharmony_ci                SetLogFatal(argListStr);
6524514f5e3Sopenharmony_ci                break;
6534514f5e3Sopenharmony_ci            case OPTION_LOG_INFO:
6544514f5e3Sopenharmony_ci                ParseListArgParam(optarg, &argListStr, COLON);
6554514f5e3Sopenharmony_ci                SetLogInfo(argListStr);
6564514f5e3Sopenharmony_ci                break;
6574514f5e3Sopenharmony_ci            case OPTION_LOG_LEVEL:
6584514f5e3Sopenharmony_ci                SetLogLevel(optarg);
6594514f5e3Sopenharmony_ci                break;
6604514f5e3Sopenharmony_ci            case OPTION_LOG_WARNING:
6614514f5e3Sopenharmony_ci                ParseListArgParam(optarg, &argListStr, COLON);
6624514f5e3Sopenharmony_ci                SetLogWarning(argListStr);
6634514f5e3Sopenharmony_ci                break;
6644514f5e3Sopenharmony_ci            case OPTION_GC_LONG_PAUSED_TIME:
6654514f5e3Sopenharmony_ci                ret = ParseUint32Param("gc-long-paused-time", &argUint32);
6664514f5e3Sopenharmony_ci                if (ret) {
6674514f5e3Sopenharmony_ci                    SetLongPauseTime(argUint32);
6684514f5e3Sopenharmony_ci                } else {
6694514f5e3Sopenharmony_ci                    return false;
6704514f5e3Sopenharmony_ci                }
6714514f5e3Sopenharmony_ci                break;
6724514f5e3Sopenharmony_ci            case OPTION_COMPILER_OPT_MAX_METHOD:
6734514f5e3Sopenharmony_ci                ret = ParseUint32Param("compiler-opt-max-method", &argUint32);
6744514f5e3Sopenharmony_ci                if (ret) {
6754514f5e3Sopenharmony_ci                    SetMaxAotMethodSize(argUint32);
6764514f5e3Sopenharmony_ci                } else {
6774514f5e3Sopenharmony_ci                    return false;
6784514f5e3Sopenharmony_ci                }
6794514f5e3Sopenharmony_ci                break;
6804514f5e3Sopenharmony_ci            case OPTION_COMPILER_MODULE_METHODS:
6814514f5e3Sopenharmony_ci                ret = ParseUint32Param("compiler-module-methods", &argUint32);
6824514f5e3Sopenharmony_ci                if (!ret) {
6834514f5e3Sopenharmony_ci                    return false;
6844514f5e3Sopenharmony_ci                }
6854514f5e3Sopenharmony_ci                SetCompilerModuleMethods(argUint32);
6864514f5e3Sopenharmony_ci                break;
6874514f5e3Sopenharmony_ci            case OPTION_COMPILER_TYPE_THRESHOLD:
6884514f5e3Sopenharmony_ci                ret = ParseDoubleParam("compiler-type-threshold", &argDouble);
6894514f5e3Sopenharmony_ci                if (ret) {
6904514f5e3Sopenharmony_ci                    SetTypeThreshold(argDouble);
6914514f5e3Sopenharmony_ci                } else {
6924514f5e3Sopenharmony_ci                    return false;
6934514f5e3Sopenharmony_ci                }
6944514f5e3Sopenharmony_ci                break;
6954514f5e3Sopenharmony_ci            case OPTION_MAX_UNMOVABLE_SPACE:
6964514f5e3Sopenharmony_ci                ret = ParseUint32Param("max-unmovable-space", &argUint32);
6974514f5e3Sopenharmony_ci                if (ret) {
6984514f5e3Sopenharmony_ci                    SetMaxNonmovableSpaceCapacity(argUint32);
6994514f5e3Sopenharmony_ci                } else {
7004514f5e3Sopenharmony_ci                    return false;
7014514f5e3Sopenharmony_ci                }
7024514f5e3Sopenharmony_ci                break;
7034514f5e3Sopenharmony_ci            case OPTION_COMPILER_LOG_METHODS:
7044514f5e3Sopenharmony_ci                SetMethodsListForLog(optarg);
7054514f5e3Sopenharmony_ci                break;
7064514f5e3Sopenharmony_ci            case OPTION_ASM_OPT_LEVEL:
7074514f5e3Sopenharmony_ci                ret = ParseUint32Param("compiler-opt-level", &argUint32);
7084514f5e3Sopenharmony_ci                if (ret) {
7094514f5e3Sopenharmony_ci                    SetOptLevel(argUint32);
7104514f5e3Sopenharmony_ci                } else {
7114514f5e3Sopenharmony_ci                    return false;
7124514f5e3Sopenharmony_ci                }
7134514f5e3Sopenharmony_ci                break;
7144514f5e3Sopenharmony_ci            case OPTION_PRINT_EXECUTE_TIME:
7154514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
7164514f5e3Sopenharmony_ci                if (ret) {
7174514f5e3Sopenharmony_ci                    SetEnablePrintExecuteTime(argBool);
7184514f5e3Sopenharmony_ci                } else {
7194514f5e3Sopenharmony_ci                    return false;
7204514f5e3Sopenharmony_ci                }
7214514f5e3Sopenharmony_ci                break;
7224514f5e3Sopenharmony_ci            case OPTION_ENABLE_PGO_PROFILER:
7234514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
7244514f5e3Sopenharmony_ci                if (ret) {
7254514f5e3Sopenharmony_ci                    SetEnablePGOProfiler(argBool);
7264514f5e3Sopenharmony_ci                } else {
7274514f5e3Sopenharmony_ci                    return false;
7284514f5e3Sopenharmony_ci                }
7294514f5e3Sopenharmony_ci                break;
7304514f5e3Sopenharmony_ci            case OPTION_ENABLE_ELEMENTSKIND:
7314514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
7324514f5e3Sopenharmony_ci                if (ret) {
7334514f5e3Sopenharmony_ci                    SetEnableElementsKind(argBool);
7344514f5e3Sopenharmony_ci                } else {
7354514f5e3Sopenharmony_ci                    return false;
7364514f5e3Sopenharmony_ci                }
7374514f5e3Sopenharmony_ci                break;
7384514f5e3Sopenharmony_ci            case OPTION_ENABLE_FORCE_IC:
7394514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
7404514f5e3Sopenharmony_ci                if (ret) {
7414514f5e3Sopenharmony_ci                    SetEnableForceIC(argBool);
7424514f5e3Sopenharmony_ci                } else {
7434514f5e3Sopenharmony_ci                    return false;
7444514f5e3Sopenharmony_ci                }
7454514f5e3Sopenharmony_ci                break;
7464514f5e3Sopenharmony_ci            case OPTION_COMPILER_PGO_PROFILER_PATH:
7474514f5e3Sopenharmony_ci                if (*optarg == '\0') {
7484514f5e3Sopenharmony_ci                    return false;
7494514f5e3Sopenharmony_ci                }
7504514f5e3Sopenharmony_ci                SetPGOProfilerPath(optarg);
7514514f5e3Sopenharmony_ci                break;
7524514f5e3Sopenharmony_ci            case OPTION_COMPILER_PGO_HOTNESS_THRESHOLD:
7534514f5e3Sopenharmony_ci                ret = ParseUint32Param("pgo-hotness-threshold", &argUint32);
7544514f5e3Sopenharmony_ci                if (ret) {
7554514f5e3Sopenharmony_ci                    SetPGOHotnessThreshold(argUint32);
7564514f5e3Sopenharmony_ci                } else {
7574514f5e3Sopenharmony_ci                    return false;
7584514f5e3Sopenharmony_ci                }
7594514f5e3Sopenharmony_ci                break;
7604514f5e3Sopenharmony_ci            case OPTION_COMPILER_PGO_SAVE_MIN_INTERVAL:
7614514f5e3Sopenharmony_ci                ret = ParseUint32Param("compiler-pgo-save-min-interval", &argUint32);
7624514f5e3Sopenharmony_ci                if (ret) {
7634514f5e3Sopenharmony_ci                    SetPGOSaveMinInterval(argUint32);
7644514f5e3Sopenharmony_ci                } else {
7654514f5e3Sopenharmony_ci                    return false;
7664514f5e3Sopenharmony_ci                }
7674514f5e3Sopenharmony_ci                break;
7684514f5e3Sopenharmony_ci            case OPTION_COMPILER_BASELINE_PGO:
7694514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
7704514f5e3Sopenharmony_ci                if (ret) {
7714514f5e3Sopenharmony_ci                    SetEnableBaselinePgo(argBool);
7724514f5e3Sopenharmony_ci                } else {
7734514f5e3Sopenharmony_ci                    return false;
7744514f5e3Sopenharmony_ci                }
7754514f5e3Sopenharmony_ci                break;
7764514f5e3Sopenharmony_ci            case OPTION_RELOCATION_MODE:
7774514f5e3Sopenharmony_ci                ret = ParseUint32Param("reloc-mode", &argUint32);
7784514f5e3Sopenharmony_ci                if (ret) {
7794514f5e3Sopenharmony_ci                    SetRelocMode(argUint32);
7804514f5e3Sopenharmony_ci                } else {
7814514f5e3Sopenharmony_ci                    return false;
7824514f5e3Sopenharmony_ci                }
7834514f5e3Sopenharmony_ci                break;
7844514f5e3Sopenharmony_ci            case OPTION_SERIALIZER_BUFFER_SIZE_LIMIT:
7854514f5e3Sopenharmony_ci                ret = ParseUint64Param("serializer-buffer-size-limit", &argUInt64);
7864514f5e3Sopenharmony_ci                if (ret) {
7874514f5e3Sopenharmony_ci                    SetSerializerBufferSizeLimit(argUInt64);
7884514f5e3Sopenharmony_ci                } else {
7894514f5e3Sopenharmony_ci                    return false;
7904514f5e3Sopenharmony_ci                }
7914514f5e3Sopenharmony_ci                break;
7924514f5e3Sopenharmony_ci            case OPTION_STARTUP_TIME:
7934514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
7944514f5e3Sopenharmony_ci                if (ret) {
7954514f5e3Sopenharmony_ci                    SetStartupTime(argBool);
7964514f5e3Sopenharmony_ci                } else {
7974514f5e3Sopenharmony_ci                    return false;
7984514f5e3Sopenharmony_ci                }
7994514f5e3Sopenharmony_ci                break;
8004514f5e3Sopenharmony_ci            case OPTION_STUB_FILE:
8014514f5e3Sopenharmony_ci                SetStubFile(optarg);
8024514f5e3Sopenharmony_ci                break;
8034514f5e3Sopenharmony_ci            case OPTION_COMPILER_TARGET_TRIPLE:
8044514f5e3Sopenharmony_ci                SetTargetTriple(optarg);
8054514f5e3Sopenharmony_ci                break;
8064514f5e3Sopenharmony_ci            case OPTION_ENTRY_POINT:
8074514f5e3Sopenharmony_ci                SetEntryPoint(optarg);
8084514f5e3Sopenharmony_ci                break;
8094514f5e3Sopenharmony_ci            case OPTION_MERGE_ABC:
8104514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
8114514f5e3Sopenharmony_ci                if (ret) {
8124514f5e3Sopenharmony_ci                    SetMergeAbc(argBool);
8134514f5e3Sopenharmony_ci                } else {
8144514f5e3Sopenharmony_ci                    return false;
8154514f5e3Sopenharmony_ci                }
8164514f5e3Sopenharmony_ci                break;
8174514f5e3Sopenharmony_ci            case OPTION_ENABLE_CONTEXT:
8184514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
8194514f5e3Sopenharmony_ci                if (ret) {
8204514f5e3Sopenharmony_ci                    SetEnableContext(argBool);
8214514f5e3Sopenharmony_ci                } else {
8224514f5e3Sopenharmony_ci                    return false;
8234514f5e3Sopenharmony_ci                }
8244514f5e3Sopenharmony_ci                break;
8254514f5e3Sopenharmony_ci            case OPTION_COMPILER_OPT_TYPE_LOWERING:
8264514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
8274514f5e3Sopenharmony_ci                if (ret) {
8284514f5e3Sopenharmony_ci                    SetEnableTypeLowering(argBool);
8294514f5e3Sopenharmony_ci                } else {
8304514f5e3Sopenharmony_ci                    return false;
8314514f5e3Sopenharmony_ci                }
8324514f5e3Sopenharmony_ci                break;
8334514f5e3Sopenharmony_ci            case OPTION_COMPILER_OPT_ARRAY_BOUNDS_CHECK_ELIMINATION:
8344514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
8354514f5e3Sopenharmony_ci                if (ret) {
8364514f5e3Sopenharmony_ci                    SetEnableArrayBoundsCheckElimination(argBool);
8374514f5e3Sopenharmony_ci                } else {
8384514f5e3Sopenharmony_ci                    return false;
8394514f5e3Sopenharmony_ci                }
8404514f5e3Sopenharmony_ci                break;
8414514f5e3Sopenharmony_ci            case OPTION_COMPILER_OPT_FRAME_STATE_ELIMINATION:
8424514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
8434514f5e3Sopenharmony_ci                if (ret) {
8444514f5e3Sopenharmony_ci                    SetEnableFrameStateElimination(argBool);
8454514f5e3Sopenharmony_ci                } else {
8464514f5e3Sopenharmony_ci                    return false;
8474514f5e3Sopenharmony_ci                }
8484514f5e3Sopenharmony_ci                break;
8494514f5e3Sopenharmony_ci            case OPTION_COMPILER_OPT_EARLY_ELIMINATION:
8504514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
8514514f5e3Sopenharmony_ci                if (ret) {
8524514f5e3Sopenharmony_ci                    SetEnableEarlyElimination(argBool);
8534514f5e3Sopenharmony_ci                } else {
8544514f5e3Sopenharmony_ci                    return false;
8554514f5e3Sopenharmony_ci                }
8564514f5e3Sopenharmony_ci                break;
8574514f5e3Sopenharmony_ci            case OPTION_COMPILER_OPT_LATER_ELIMINATION:
8584514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
8594514f5e3Sopenharmony_ci                if (ret) {
8604514f5e3Sopenharmony_ci                    SetEnableLaterElimination(argBool);
8614514f5e3Sopenharmony_ci                } else {
8624514f5e3Sopenharmony_ci                    return false;
8634514f5e3Sopenharmony_ci                }
8644514f5e3Sopenharmony_ci                break;
8654514f5e3Sopenharmony_ci            case OPTION_COMPILER_OPT_INSTRUCTIONE_COMBINE:
8664514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
8674514f5e3Sopenharmony_ci                if (ret) {
8684514f5e3Sopenharmony_ci                    SetEnableInstrcutionCombine(argBool);
8694514f5e3Sopenharmony_ci                } else {
8704514f5e3Sopenharmony_ci                    return false;
8714514f5e3Sopenharmony_ci                }
8724514f5e3Sopenharmony_ci                break;
8734514f5e3Sopenharmony_ci            case OPTION_COMPILER_OPT_STRING:
8744514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
8754514f5e3Sopenharmony_ci                if (ret) {
8764514f5e3Sopenharmony_ci                    SetEnableOptString(argBool);
8774514f5e3Sopenharmony_ci                } else {
8784514f5e3Sopenharmony_ci                    return false;
8794514f5e3Sopenharmony_ci                }
8804514f5e3Sopenharmony_ci                break;
8814514f5e3Sopenharmony_ci            case OPTION_COMPILER_OPT_VALUE_NUMBERING:
8824514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
8834514f5e3Sopenharmony_ci                if (ret) {
8844514f5e3Sopenharmony_ci                    SetEnableValueNumbering(argBool);
8854514f5e3Sopenharmony_ci                } else {
8864514f5e3Sopenharmony_ci                    return false;
8874514f5e3Sopenharmony_ci                }
8884514f5e3Sopenharmony_ci                break;
8894514f5e3Sopenharmony_ci            case OPTION_COMPILER_OPT_NEW_VALUE_NUMBERING:
8904514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
8914514f5e3Sopenharmony_ci                if (ret) {
8924514f5e3Sopenharmony_ci                    SetEnableNewValueNumbering(argBool);
8934514f5e3Sopenharmony_ci                } else {
8944514f5e3Sopenharmony_ci                    return false;
8954514f5e3Sopenharmony_ci                }
8964514f5e3Sopenharmony_ci                break;
8974514f5e3Sopenharmony_ci            case OPTION_COMPILER_OPT_INLINING:
8984514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
8994514f5e3Sopenharmony_ci                if (ret) {
9004514f5e3Sopenharmony_ci                    SetEnableOptInlining(argBool);
9014514f5e3Sopenharmony_ci                } else {
9024514f5e3Sopenharmony_ci                    return false;
9034514f5e3Sopenharmony_ci                }
9044514f5e3Sopenharmony_ci                break;
9054514f5e3Sopenharmony_ci            case OPTION_COMPILER_OPT_PGOTYPE:
9064514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
9074514f5e3Sopenharmony_ci                if (ret) {
9084514f5e3Sopenharmony_ci                    SetEnableOptPGOType(argBool);
9094514f5e3Sopenharmony_ci                } else {
9104514f5e3Sopenharmony_ci                    return false;
9114514f5e3Sopenharmony_ci                }
9124514f5e3Sopenharmony_ci                break;
9134514f5e3Sopenharmony_ci            case OPTION_COMPILER_OPT_TRACK_FIELD:
9144514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
9154514f5e3Sopenharmony_ci                if (ret) {
9164514f5e3Sopenharmony_ci                    SetEnableOptTrackField(argBool);
9174514f5e3Sopenharmony_ci                } else {
9184514f5e3Sopenharmony_ci                    return false;
9194514f5e3Sopenharmony_ci                }
9204514f5e3Sopenharmony_ci                break;
9214514f5e3Sopenharmony_ci            case OPTION_COMPILER_VERIFY_VTABLE:
9224514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
9234514f5e3Sopenharmony_ci                if (ret) {
9244514f5e3Sopenharmony_ci                    SetVerifyVTable(argBool);
9254514f5e3Sopenharmony_ci                } else {
9264514f5e3Sopenharmony_ci                    return false;
9274514f5e3Sopenharmony_ci                }
9284514f5e3Sopenharmony_ci                break;
9294514f5e3Sopenharmony_ci            case OPTION_COMPILER_SELECT_METHODS:
9304514f5e3Sopenharmony_ci                SetCompilerSelectMethods(optarg);
9314514f5e3Sopenharmony_ci                break;
9324514f5e3Sopenharmony_ci            case OPTION_COMPILER_SKIP_METHODS:
9334514f5e3Sopenharmony_ci                SetCompilerSkipMethods(optarg);
9344514f5e3Sopenharmony_ci                break;
9354514f5e3Sopenharmony_ci            case OPTION_TARGET_COMPILER_MODE:
9364514f5e3Sopenharmony_ci                SetTargetCompilerMode(optarg);
9374514f5e3Sopenharmony_ci                break;
9384514f5e3Sopenharmony_ci            case OPTION_COMPILER_FRAMEWORK_ABC_PATH:
9394514f5e3Sopenharmony_ci                SetCompilerFrameworkAbcPath(optarg);
9404514f5e3Sopenharmony_ci                break;
9414514f5e3Sopenharmony_ci            case OPTION_HAP_PATH:
9424514f5e3Sopenharmony_ci                SetHapPath(optarg);
9434514f5e3Sopenharmony_ci                break;
9444514f5e3Sopenharmony_ci            case OPTION_HAP_ABC_OFFSET:
9454514f5e3Sopenharmony_ci                ret = ParseUint32Param("hap-abc-offset", &argUint32);
9464514f5e3Sopenharmony_ci                if (!ret) {
9474514f5e3Sopenharmony_ci                    return false;
9484514f5e3Sopenharmony_ci                }
9494514f5e3Sopenharmony_ci                SetHapAbcOffset(argUint32);
9504514f5e3Sopenharmony_ci                break;
9514514f5e3Sopenharmony_ci            case OPTION_HAP_ABC_SIZE:
9524514f5e3Sopenharmony_ci                ret = ParseUint32Param("hap-abc-size", &argUint32);
9534514f5e3Sopenharmony_ci                if (!ret) {
9544514f5e3Sopenharmony_ci                    return false;
9554514f5e3Sopenharmony_ci                }
9564514f5e3Sopenharmony_ci                SetHapAbcSize(argUint32);
9574514f5e3Sopenharmony_ci                break;
9584514f5e3Sopenharmony_ci            case OPTION_COMPILER_NOCHECK:
9594514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
9604514f5e3Sopenharmony_ci                if (!ret) {
9614514f5e3Sopenharmony_ci                    return false;
9624514f5e3Sopenharmony_ci                }
9634514f5e3Sopenharmony_ci                SetCompilerNoCheck(argBool);
9644514f5e3Sopenharmony_ci                break;
9654514f5e3Sopenharmony_ci            case OPTION_COMPILER_PIPELINE_HOST_AOT:
9664514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
9674514f5e3Sopenharmony_ci                if (!ret) {
9684514f5e3Sopenharmony_ci                    return false;
9694514f5e3Sopenharmony_ci                }
9704514f5e3Sopenharmony_ci                SetCompilerPipelineHostAOT(argBool);
9714514f5e3Sopenharmony_ci                break;
9724514f5e3Sopenharmony_ci            case OPTION_FAST_AOT_COMPILE_MODE:
9734514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
9744514f5e3Sopenharmony_ci                if (!ret) {
9754514f5e3Sopenharmony_ci                    return false;
9764514f5e3Sopenharmony_ci                }
9774514f5e3Sopenharmony_ci                SetFastAOTCompileMode(argBool);
9784514f5e3Sopenharmony_ci                break;
9794514f5e3Sopenharmony_ci            case OPTION_COMPILER_OPT_CONSTANT_FOLDING:
9804514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
9814514f5e3Sopenharmony_ci                if (ret) {
9824514f5e3Sopenharmony_ci                    SetEnableOptConstantFolding(argBool);
9834514f5e3Sopenharmony_ci                } else {
9844514f5e3Sopenharmony_ci                    return false;
9854514f5e3Sopenharmony_ci                }
9864514f5e3Sopenharmony_ci                break;
9874514f5e3Sopenharmony_ci            case OPTION_COMPILER_OPT_LOOP_PEELING:
9884514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
9894514f5e3Sopenharmony_ci                if (ret) {
9904514f5e3Sopenharmony_ci                    SetEnableOptLoopPeeling(argBool);
9914514f5e3Sopenharmony_ci                } else {
9924514f5e3Sopenharmony_ci                    return false;
9934514f5e3Sopenharmony_ci                }
9944514f5e3Sopenharmony_ci                break;
9954514f5e3Sopenharmony_ci            case OPTION_COMPILER_OPT_ON_HEAP_CHECK:
9964514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
9974514f5e3Sopenharmony_ci                if (ret) {
9984514f5e3Sopenharmony_ci                    SetEnableOptOnHeapCheck(argBool);
9994514f5e3Sopenharmony_ci                } else {
10004514f5e3Sopenharmony_ci                    return false;
10014514f5e3Sopenharmony_ci                }
10024514f5e3Sopenharmony_ci                break;
10034514f5e3Sopenharmony_ci            case OPTION_COMPILER_PKG_INFO:
10044514f5e3Sopenharmony_ci                SetCompilerPkgJsonInfo(optarg);
10054514f5e3Sopenharmony_ci                break;
10064514f5e3Sopenharmony_ci            case OPTION_COMPILER_EXTERNAL_PKG_INFO:
10074514f5e3Sopenharmony_ci                SetCompilerExternalPkgJsonInfo(optarg);
10084514f5e3Sopenharmony_ci                break;
10094514f5e3Sopenharmony_ci            case OPTION_COMPILER_ENABLE_EXTERNAL_PKG:
10104514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
10114514f5e3Sopenharmony_ci                if (ret) {
10124514f5e3Sopenharmony_ci                    SetCompilerEnableExternalPkg(argBool);
10134514f5e3Sopenharmony_ci                } else {
10144514f5e3Sopenharmony_ci                    return false;
10154514f5e3Sopenharmony_ci                }
10164514f5e3Sopenharmony_ci                break;
10174514f5e3Sopenharmony_ci            case OPTION_COMPILER_ENABLE_LEXENV_SPECIALIZATION:
10184514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
10194514f5e3Sopenharmony_ci                if (ret) {
10204514f5e3Sopenharmony_ci                    SetEnableLexenvSpecialization(argBool);
10214514f5e3Sopenharmony_ci                } else {
10224514f5e3Sopenharmony_ci                    return false;
10234514f5e3Sopenharmony_ci                }
10244514f5e3Sopenharmony_ci                break;
10254514f5e3Sopenharmony_ci            case OPTION_COMPILER_ENABLE_NATIVE_INLINE:
10264514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
10274514f5e3Sopenharmony_ci                if (ret) {
10284514f5e3Sopenharmony_ci                    SetEnableNativeInline(argBool);
10294514f5e3Sopenharmony_ci                } else {
10304514f5e3Sopenharmony_ci                    return false;
10314514f5e3Sopenharmony_ci                }
10324514f5e3Sopenharmony_ci                break;
10334514f5e3Sopenharmony_ci            case OPTION_COMPILER_ENABLE_LOWERING_BUILTIN:
10344514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
10354514f5e3Sopenharmony_ci                if (ret) {
10364514f5e3Sopenharmony_ci                    SetEnableLoweringBuiltin(argBool);
10374514f5e3Sopenharmony_ci                } else {
10384514f5e3Sopenharmony_ci                    return false;
10394514f5e3Sopenharmony_ci                }
10404514f5e3Sopenharmony_ci                break;
10414514f5e3Sopenharmony_ci            case OPTION_COMPILER_ENABLE_LITECG:
10424514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
10434514f5e3Sopenharmony_ci                if (ret) {
10444514f5e3Sopenharmony_ci                    SetCompilerEnableLiteCG(argBool);
10454514f5e3Sopenharmony_ci                } else {
10464514f5e3Sopenharmony_ci                    return false;
10474514f5e3Sopenharmony_ci                }
10484514f5e3Sopenharmony_ci                break;
10494514f5e3Sopenharmony_ci            case OPTION_COMPILER_ENABLE_JIT:
10504514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
10514514f5e3Sopenharmony_ci                if (ret) {
10524514f5e3Sopenharmony_ci                    SetEnableJIT(argBool);
10534514f5e3Sopenharmony_ci                } else {
10544514f5e3Sopenharmony_ci                    return false;
10554514f5e3Sopenharmony_ci                }
10564514f5e3Sopenharmony_ci                break;
10574514f5e3Sopenharmony_ci            case OPTION_COMPILER_ENABLE_OSR:
10584514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
10594514f5e3Sopenharmony_ci                if (ret) {
10604514f5e3Sopenharmony_ci                    SetEnableOSR(argBool);
10614514f5e3Sopenharmony_ci                } else {
10624514f5e3Sopenharmony_ci                    return false;
10634514f5e3Sopenharmony_ci                }
10644514f5e3Sopenharmony_ci                break;
10654514f5e3Sopenharmony_ci            case OPTION_COMPILER_JIT_HOTNESS_THRESHOLD:
10664514f5e3Sopenharmony_ci                ret = ParseUint32Param("compiler-jit-hotness-threshold", &argUint32);
10674514f5e3Sopenharmony_ci                if (ret) {
10684514f5e3Sopenharmony_ci                    uint16_t val = argUint32 > std::numeric_limits<uint16_t>::max() ?
10694514f5e3Sopenharmony_ci                        std::numeric_limits<uint16_t>::max() : static_cast<uint16_t>(argUint32);
10704514f5e3Sopenharmony_ci                    SetJitHotnessThreshold(val);
10714514f5e3Sopenharmony_ci                } else {
10724514f5e3Sopenharmony_ci                    return false;
10734514f5e3Sopenharmony_ci                }
10744514f5e3Sopenharmony_ci                break;
10754514f5e3Sopenharmony_ci            case OPTION_COMPILER_JIT_CALL_THRESHOLD:
10764514f5e3Sopenharmony_ci                ret = ParseUint32Param("compiler-jit-call-threshold", &argUint32);
10774514f5e3Sopenharmony_ci                if (ret) {
10784514f5e3Sopenharmony_ci                    uint8_t val =  argUint32 > std::numeric_limits<uint8_t>::max() ?
10794514f5e3Sopenharmony_ci                        std::numeric_limits<uint8_t>::max() : static_cast<uint8_t>(argUint32);
10804514f5e3Sopenharmony_ci                    SetJitCallThreshold(val);
10814514f5e3Sopenharmony_ci                } else {
10824514f5e3Sopenharmony_ci                    return false;
10834514f5e3Sopenharmony_ci                }
10844514f5e3Sopenharmony_ci                break;
10854514f5e3Sopenharmony_ci            case OPTION_COMPILER_OSR_HOTNESS_THRESHOLD:
10864514f5e3Sopenharmony_ci                ret = ParseUint32Param("compiler-osr-hotness-threshold", &argUint32);
10874514f5e3Sopenharmony_ci                if (ret) {
10884514f5e3Sopenharmony_ci                    uint16_t val = argUint32 > std::numeric_limits<uint16_t>::max() ?
10894514f5e3Sopenharmony_ci                        std::numeric_limits<uint16_t>::max() : static_cast<uint16_t>(argUint32);
10904514f5e3Sopenharmony_ci                    SetOsrHotnessThreshold(val);
10914514f5e3Sopenharmony_ci                } else {
10924514f5e3Sopenharmony_ci                    return false;
10934514f5e3Sopenharmony_ci                }
10944514f5e3Sopenharmony_ci                break;
10954514f5e3Sopenharmony_ci            case OPTION_COMPILER_FORCE_JIT_COMPILE_MAIN:
10964514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
10974514f5e3Sopenharmony_ci                if (ret) {
10984514f5e3Sopenharmony_ci                    SetForceJitCompileMain(argBool);
10994514f5e3Sopenharmony_ci                } else {
11004514f5e3Sopenharmony_ci                    return false;
11014514f5e3Sopenharmony_ci                }
11024514f5e3Sopenharmony_ci                break;
11034514f5e3Sopenharmony_ci            case OPTION_COMPILER_TRACE_JIT:
11044514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
11054514f5e3Sopenharmony_ci                if (ret) {
11064514f5e3Sopenharmony_ci                    SetTraceJIT(argBool);
11074514f5e3Sopenharmony_ci                } else {
11084514f5e3Sopenharmony_ci                    return false;
11094514f5e3Sopenharmony_ci                }
11104514f5e3Sopenharmony_ci                break;
11114514f5e3Sopenharmony_ci            case OPTION_COMPILER_TYPED_OP_PROFILER:
11124514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
11134514f5e3Sopenharmony_ci                if (ret) {
11144514f5e3Sopenharmony_ci                    SetTypedOpProfiler(argBool);
11154514f5e3Sopenharmony_ci                } else {
11164514f5e3Sopenharmony_ci                    return false;
11174514f5e3Sopenharmony_ci                }
11184514f5e3Sopenharmony_ci                break;
11194514f5e3Sopenharmony_ci            case OPTION_COMPILER_OPT_BRANCH_PROFILING:
11204514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
11214514f5e3Sopenharmony_ci                if (ret) {
11224514f5e3Sopenharmony_ci                    SetEnableBranchProfiling(argBool);
11234514f5e3Sopenharmony_ci                } else {
11244514f5e3Sopenharmony_ci                    return false;
11254514f5e3Sopenharmony_ci                }
11264514f5e3Sopenharmony_ci                break;
11274514f5e3Sopenharmony_ci            case OPTION_TEST_ASSERT:
11284514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
11294514f5e3Sopenharmony_ci                if (ret) {
11304514f5e3Sopenharmony_ci                    SetTestAssert(argBool);
11314514f5e3Sopenharmony_ci                } else {
11324514f5e3Sopenharmony_ci                    return false;
11334514f5e3Sopenharmony_ci                }
11344514f5e3Sopenharmony_ci                break;
11354514f5e3Sopenharmony_ci            case OPTION_COMPILER_ENABLE_JIT_PGO:
11364514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
11374514f5e3Sopenharmony_ci                if (ret) {
11384514f5e3Sopenharmony_ci                    SetEnableJITPGO(argBool);
11394514f5e3Sopenharmony_ci                } else {
11404514f5e3Sopenharmony_ci                    return false;
11414514f5e3Sopenharmony_ci                }
11424514f5e3Sopenharmony_ci                break;
11434514f5e3Sopenharmony_ci            case OPTION_COMPILER_ENABLE_PROPFILE_DUMP:
11444514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
11454514f5e3Sopenharmony_ci                if (ret) {
11464514f5e3Sopenharmony_ci                    SetEnableProfileDump(argBool);
11474514f5e3Sopenharmony_ci                } else {
11484514f5e3Sopenharmony_ci                    return false;
11494514f5e3Sopenharmony_ci                }
11504514f5e3Sopenharmony_ci                break;
11514514f5e3Sopenharmony_ci            case OPTION_COMPILER_ENABLE_AOT_PGO:
11524514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
11534514f5e3Sopenharmony_ci                if (ret) {
11544514f5e3Sopenharmony_ci                    SetEnableAOTPGO(argBool);
11554514f5e3Sopenharmony_ci                } else {
11564514f5e3Sopenharmony_ci                    return false;
11574514f5e3Sopenharmony_ci                }
11584514f5e3Sopenharmony_ci                break;
11594514f5e3Sopenharmony_ci            case OPTION_COMPILER_ENABLE_FRAMEWORK_AOT:
11604514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
11614514f5e3Sopenharmony_ci                if (ret) {
11624514f5e3Sopenharmony_ci                    SetEnableFrameworkAOT(argBool);
11634514f5e3Sopenharmony_ci                } else {
11644514f5e3Sopenharmony_ci                    return false;
11654514f5e3Sopenharmony_ci                }
11664514f5e3Sopenharmony_ci                break;
11674514f5e3Sopenharmony_ci            case OPTION_COMPILER_ENABLE_BASELINEJIT:
11684514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
11694514f5e3Sopenharmony_ci                if (ret) {
11704514f5e3Sopenharmony_ci                    SetEnableBaselineJIT(argBool);
11714514f5e3Sopenharmony_ci                } else {
11724514f5e3Sopenharmony_ci                    return false;
11734514f5e3Sopenharmony_ci                }
11744514f5e3Sopenharmony_ci                break;
11754514f5e3Sopenharmony_ci            case OPTION_COMPILER_METHODS_RANGE:
11764514f5e3Sopenharmony_ci                ParseListArgParam(optarg, &argListStr, COLON);
11774514f5e3Sopenharmony_ci                SetCompilerMethodsRange(&argListStr);
11784514f5e3Sopenharmony_ci                break;
11794514f5e3Sopenharmony_ci            case OPTION_COMPILER_CODEGEN_OPT:
11804514f5e3Sopenharmony_ci                ParseListArgParam(optarg, &argListStr, " ");
11814514f5e3Sopenharmony_ci                SetCompilerCodegenOptions(argListStr);
11824514f5e3Sopenharmony_ci                break;
11834514f5e3Sopenharmony_ci            case OPTION_COMPILER_OPT_ESCAPE_ANALYSIS:
11844514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
11854514f5e3Sopenharmony_ci                if (ret) {
11864514f5e3Sopenharmony_ci                    SetEnableEscapeAnalysis(argBool);
11874514f5e3Sopenharmony_ci                } else {
11884514f5e3Sopenharmony_ci                    return false;
11894514f5e3Sopenharmony_ci                }
11904514f5e3Sopenharmony_ci                break;
11914514f5e3Sopenharmony_ci            case OPTION_COMPILER_TRACE_ESCAPE_ANALYSIS:
11924514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
11934514f5e3Sopenharmony_ci                if (ret) {
11944514f5e3Sopenharmony_ci                    SetEnableTraceEscapeAnalysis(argBool);
11954514f5e3Sopenharmony_ci                } else {
11964514f5e3Sopenharmony_ci                    return false;
11974514f5e3Sopenharmony_ci                }
11984514f5e3Sopenharmony_ci                break;
11994514f5e3Sopenharmony_ci            case OPTION_COMPILER_OPT_INDUCTION_VARIABLE:
12004514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
12014514f5e3Sopenharmony_ci                if (ret) {
12024514f5e3Sopenharmony_ci                    SetEnableInductionVariableAnalysis(argBool);
12034514f5e3Sopenharmony_ci                } else {
12044514f5e3Sopenharmony_ci                    return false;
12054514f5e3Sopenharmony_ci                }
12064514f5e3Sopenharmony_ci                break;
12074514f5e3Sopenharmony_ci            case OPTION_COMPILER_TRACE_INDUCTION_VARIABLE:
12084514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
12094514f5e3Sopenharmony_ci                if (ret) {
12104514f5e3Sopenharmony_ci                    SetEnableTraceInductionVariableAnalysis(argBool);
12114514f5e3Sopenharmony_ci                } else {
12124514f5e3Sopenharmony_ci                    return false;
12134514f5e3Sopenharmony_ci                }
12144514f5e3Sopenharmony_ci                break;
12154514f5e3Sopenharmony_ci            case OPTION_COMPILER_BASELINEJIT_HOTNESS_THRESHOLD:
12164514f5e3Sopenharmony_ci                ret = ParseUint32Param("compiler-baselinejit-hotness-threshold", &argUint32);
12174514f5e3Sopenharmony_ci                if (ret) {
12184514f5e3Sopenharmony_ci                    uint16_t val = argUint32 > std::numeric_limits<uint16_t>::max() ?
12194514f5e3Sopenharmony_ci                        std::numeric_limits<uint16_t>::max() : static_cast<uint16_t>(argUint32);
12204514f5e3Sopenharmony_ci                    SetBaselineJitHotnessThreshold(val);
12214514f5e3Sopenharmony_ci                } else {
12224514f5e3Sopenharmony_ci                    return false;
12234514f5e3Sopenharmony_ci                }
12244514f5e3Sopenharmony_ci                break;
12254514f5e3Sopenharmony_ci            case OPTION_COMPILER_MEMORY_ANALYSIS:
12264514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
12274514f5e3Sopenharmony_ci                if (ret) {
12284514f5e3Sopenharmony_ci                    SetEnableMemoryAnalysis(argBool);
12294514f5e3Sopenharmony_ci                } else {
12304514f5e3Sopenharmony_ci                    return false;
12314514f5e3Sopenharmony_ci                }
12324514f5e3Sopenharmony_ci                break;
12334514f5e3Sopenharmony_ci            case OPTION_COMPILER_CHECK_PGO_VERSION:
12344514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
12354514f5e3Sopenharmony_ci                if (ret) {
12364514f5e3Sopenharmony_ci                    SetCheckPgoVersion(argBool);
12374514f5e3Sopenharmony_ci                } else {
12384514f5e3Sopenharmony_ci                    return false;
12394514f5e3Sopenharmony_ci                }
12404514f5e3Sopenharmony_ci                break;
12414514f5e3Sopenharmony_ci            case OPTION_COMPILER_FORCE_BASELINEJIT_COMPILE_MAIN:
12424514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
12434514f5e3Sopenharmony_ci                if (ret) {
12444514f5e3Sopenharmony_ci                    SetForceBaselineCompileMain(argBool);
12454514f5e3Sopenharmony_ci                } else {
12464514f5e3Sopenharmony_ci                    return false;
12474514f5e3Sopenharmony_ci                }
12484514f5e3Sopenharmony_ci                break;
12494514f5e3Sopenharmony_ci            case OPTION_COMPILER_ENABLE_JIT_FAST_COMPILE:
12504514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
12514514f5e3Sopenharmony_ci                if (ret) {
12524514f5e3Sopenharmony_ci                    SetEnableJitFastCompile(argBool);
12534514f5e3Sopenharmony_ci                } else {
12544514f5e3Sopenharmony_ci                    return false;
12554514f5e3Sopenharmony_ci                }
12564514f5e3Sopenharmony_ci                break;
12574514f5e3Sopenharmony_ci            case OPTION_ASYNC_LOAD_ABC:
12584514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
12594514f5e3Sopenharmony_ci                if (ret) {
12604514f5e3Sopenharmony_ci                    SetAsyncLoadAbc(argBool);
12614514f5e3Sopenharmony_ci                } else {
12624514f5e3Sopenharmony_ci                    return false;
12634514f5e3Sopenharmony_ci                }
12644514f5e3Sopenharmony_ci                break;
12654514f5e3Sopenharmony_ci            case OPTION_ASYNC_LOAD_ABC_TEST:
12664514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
12674514f5e3Sopenharmony_ci                if (ret) {
12684514f5e3Sopenharmony_ci                    SetAsyncLoadAbcTest(argBool);
12694514f5e3Sopenharmony_ci                } else {
12704514f5e3Sopenharmony_ci                    return false;
12714514f5e3Sopenharmony_ci                }
12724514f5e3Sopenharmony_ci                break;
12734514f5e3Sopenharmony_ci            case OPTION_ENABLE_JITFORT:
12744514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
12754514f5e3Sopenharmony_ci                if (ret) {
12764514f5e3Sopenharmony_ci                    SetEnableJitFort(argBool);
12774514f5e3Sopenharmony_ci                } else {
12784514f5e3Sopenharmony_ci                    return false;
12794514f5e3Sopenharmony_ci                }
12804514f5e3Sopenharmony_ci                break;
12814514f5e3Sopenharmony_ci            case OPTION_CODESIGN_DISABLE:
12824514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
12834514f5e3Sopenharmony_ci                if (ret) {
12844514f5e3Sopenharmony_ci                    SetDisableCodeSign(argBool);
12854514f5e3Sopenharmony_ci                } else {
12864514f5e3Sopenharmony_ci                    return false;
12874514f5e3Sopenharmony_ci                }
12884514f5e3Sopenharmony_ci                break;
12894514f5e3Sopenharmony_ci            case OPTION_ENABLE_ASYNC_COPYTOFORT:
12904514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
12914514f5e3Sopenharmony_ci                if (ret) {
12924514f5e3Sopenharmony_ci                    SetEnableAsyncCopyToFort(argBool);
12934514f5e3Sopenharmony_ci                } else {
12944514f5e3Sopenharmony_ci                    return false;
12954514f5e3Sopenharmony_ci                }
12964514f5e3Sopenharmony_ci                break;
12974514f5e3Sopenharmony_ci            case OPTION_COMPILER_ENABLE_CONCURRENT:
12984514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
12994514f5e3Sopenharmony_ci                if (ret) {
13004514f5e3Sopenharmony_ci                    SetConcurrentCompile(argBool);
13014514f5e3Sopenharmony_ci                } else {
13024514f5e3Sopenharmony_ci                    return false;
13034514f5e3Sopenharmony_ci                }
13044514f5e3Sopenharmony_ci                break;
13054514f5e3Sopenharmony_ci            case OPTION_COMPILER_PGO_FORCE_DUMP:
13064514f5e3Sopenharmony_ci                ret = ParseBoolParam(&argBool);
13074514f5e3Sopenharmony_ci                if (ret) {
13084514f5e3Sopenharmony_ci                    SetPgoForceDump(argBool);
13094514f5e3Sopenharmony_ci                } else {
13104514f5e3Sopenharmony_ci                    return false;
13114514f5e3Sopenharmony_ci                }
13124514f5e3Sopenharmony_ci                break;
13134514f5e3Sopenharmony_ci            case OPTION_COMPILER_ENABLE_PGO_SPACE:
13144514f5e3Sopenharmony_ci                 ret = ParseBoolParam(&argBool);
13154514f5e3Sopenharmony_ci                if (ret) {
13164514f5e3Sopenharmony_ci                    SetCompilerEnablePgoSpace(argBool);
13174514f5e3Sopenharmony_ci                } else {
13184514f5e3Sopenharmony_ci                    return false;
13194514f5e3Sopenharmony_ci                }
13204514f5e3Sopenharmony_ci                break;
13214514f5e3Sopenharmony_ci            default:
13224514f5e3Sopenharmony_ci                LOG_ECMA(ERROR) << "Invalid option\n";
13234514f5e3Sopenharmony_ci                return false;
13244514f5e3Sopenharmony_ci        }
13254514f5e3Sopenharmony_ci    }
13264514f5e3Sopenharmony_ci}
13274514f5e3Sopenharmony_ci
13284514f5e3Sopenharmony_cibool JSRuntimeOptions::SetDefaultValue(char* argv)
13294514f5e3Sopenharmony_ci{
13304514f5e3Sopenharmony_ci    WasSet(optopt);
13314514f5e3Sopenharmony_ci
13324514f5e3Sopenharmony_ci    if (optopt == OPTION_DEFAULT) { // unknown option
13334514f5e3Sopenharmony_ci        LOG_ECMA(ERROR) << " Invalid option \"" << argv << "\"";
13344514f5e3Sopenharmony_ci        return false;
13354514f5e3Sopenharmony_ci    }
13364514f5e3Sopenharmony_ci
13374514f5e3Sopenharmony_ci    if (optopt >= OPTION_LAST) { // unknown argument
13384514f5e3Sopenharmony_ci        LOG_ECMA(ERROR) << "getopt: \"" << argv <<"\" argument has invalid parameter value \n";
13394514f5e3Sopenharmony_ci        return false;
13404514f5e3Sopenharmony_ci    }
13414514f5e3Sopenharmony_ci    return true;
13424514f5e3Sopenharmony_ci}
13434514f5e3Sopenharmony_ci
13444514f5e3Sopenharmony_cibool JSRuntimeOptions::ParseBoolParam(bool* argBool)
13454514f5e3Sopenharmony_ci{
13464514f5e3Sopenharmony_ci    if ((strcmp(optarg, "false") == 0) || (strcmp(optarg, "0") == 0)) {
13474514f5e3Sopenharmony_ci        *argBool = false;
13484514f5e3Sopenharmony_ci    } else {
13494514f5e3Sopenharmony_ci        *argBool = true;
13504514f5e3Sopenharmony_ci    }
13514514f5e3Sopenharmony_ci    return true;
13524514f5e3Sopenharmony_ci}
13534514f5e3Sopenharmony_ci
13544514f5e3Sopenharmony_cibool JSRuntimeOptions::ParseDoubleParam(const std::string &option, double *argDouble)
13554514f5e3Sopenharmony_ci{
13564514f5e3Sopenharmony_ci    *argDouble = std::stod(optarg, nullptr);
13574514f5e3Sopenharmony_ci    if (errno == ERANGE) {
13584514f5e3Sopenharmony_ci        LOG_ECMA(ERROR) << "getopt: \"" << option << "\" argument has invalid parameter value \"" << optarg <<"\"\n";
13594514f5e3Sopenharmony_ci        return false;
13604514f5e3Sopenharmony_ci    }
13614514f5e3Sopenharmony_ci    return true;
13624514f5e3Sopenharmony_ci}
13634514f5e3Sopenharmony_ci
13644514f5e3Sopenharmony_cibool JSRuntimeOptions::ParseIntParam(const std::string &option, int *argInt)
13654514f5e3Sopenharmony_ci{
13664514f5e3Sopenharmony_ci    if (StartsWith(optarg, "0x")) {
13674514f5e3Sopenharmony_ci        const int HEX = 16;
13684514f5e3Sopenharmony_ci        *argInt = std::stoi(optarg, nullptr, HEX);
13694514f5e3Sopenharmony_ci    } else {
13704514f5e3Sopenharmony_ci        *argInt = std::stoi(optarg);
13714514f5e3Sopenharmony_ci    }
13724514f5e3Sopenharmony_ci
13734514f5e3Sopenharmony_ci    if (errno == ERANGE) {
13744514f5e3Sopenharmony_ci        LOG_ECMA(ERROR) << "getopt: \"" << option << "\" argument has invalid parameter value \"" << optarg <<"\"\n";
13754514f5e3Sopenharmony_ci        return false;
13764514f5e3Sopenharmony_ci    }
13774514f5e3Sopenharmony_ci    return true;
13784514f5e3Sopenharmony_ci}
13794514f5e3Sopenharmony_ci
13804514f5e3Sopenharmony_cibool JSRuntimeOptions::ParseUint32Param(const std::string &option, uint32_t *argUInt32)
13814514f5e3Sopenharmony_ci{
13824514f5e3Sopenharmony_ci    if (StartsWith(optarg, "0x")) {
13834514f5e3Sopenharmony_ci        const int HEX = 16;
13844514f5e3Sopenharmony_ci        *argUInt32 = std::strtoull(optarg, nullptr, HEX);
13854514f5e3Sopenharmony_ci    } else {
13864514f5e3Sopenharmony_ci        const int DEC = 10;
13874514f5e3Sopenharmony_ci        *argUInt32 = std::strtoull(optarg, nullptr, DEC);
13884514f5e3Sopenharmony_ci    }
13894514f5e3Sopenharmony_ci
13904514f5e3Sopenharmony_ci    if (errno == ERANGE) {
13914514f5e3Sopenharmony_ci        LOG_ECMA(ERROR) << "getopt: \"" << option << "\" argument has invalid parameter value \"" << optarg <<"\"\n";
13924514f5e3Sopenharmony_ci        return false;
13934514f5e3Sopenharmony_ci    }
13944514f5e3Sopenharmony_ci    return true;
13954514f5e3Sopenharmony_ci}
13964514f5e3Sopenharmony_ci
13974514f5e3Sopenharmony_cibool JSRuntimeOptions::ParseUint64Param(const std::string &option, uint64_t *argUInt64)
13984514f5e3Sopenharmony_ci{
13994514f5e3Sopenharmony_ci    if (StartsWith(optarg, "0x")) {
14004514f5e3Sopenharmony_ci        const int HEX = 16;
14014514f5e3Sopenharmony_ci        *argUInt64 = std::strtoull(optarg, nullptr, HEX);
14024514f5e3Sopenharmony_ci    } else {
14034514f5e3Sopenharmony_ci        const int DEC = 10;
14044514f5e3Sopenharmony_ci        *argUInt64 = std::strtoull(optarg, nullptr, DEC);
14054514f5e3Sopenharmony_ci    }
14064514f5e3Sopenharmony_ci
14074514f5e3Sopenharmony_ci    if (errno == ERANGE) {
14084514f5e3Sopenharmony_ci        LOG_ECMA(ERROR) << "getopt: \"" << option << "\" argument has invalid parameter value \"" << optarg <<"\"\n";
14094514f5e3Sopenharmony_ci        return false;
14104514f5e3Sopenharmony_ci    }
14114514f5e3Sopenharmony_ci    return true;
14124514f5e3Sopenharmony_ci}
14134514f5e3Sopenharmony_ci
14144514f5e3Sopenharmony_civoid JSRuntimeOptions::ParseListArgParam(const std::string &option, arg_list_t *argListStr, std::string delimiter)
14154514f5e3Sopenharmony_ci{
14164514f5e3Sopenharmony_ci    argListStr->clear();
14174514f5e3Sopenharmony_ci    std::size_t strIndex = 0;
14184514f5e3Sopenharmony_ci    std::size_t pos = option.find_first_of(delimiter, strIndex);
14194514f5e3Sopenharmony_ci    while ((pos < option.size()) && (pos > strIndex)) {
14204514f5e3Sopenharmony_ci        argListStr->push_back(option.substr(strIndex, pos - strIndex));
14214514f5e3Sopenharmony_ci        strIndex = pos;
14224514f5e3Sopenharmony_ci        strIndex = option.find_first_not_of(delimiter, strIndex);
14234514f5e3Sopenharmony_ci        pos = option.find_first_of(delimiter, strIndex);
14244514f5e3Sopenharmony_ci    }
14254514f5e3Sopenharmony_ci    if (pos > strIndex) {
14264514f5e3Sopenharmony_ci        argListStr->push_back(option.substr(strIndex, pos - strIndex));
14274514f5e3Sopenharmony_ci    }
14284514f5e3Sopenharmony_ci    return;
14294514f5e3Sopenharmony_ci}
14304514f5e3Sopenharmony_ci
14314514f5e3Sopenharmony_civoid JSRuntimeOptions::BindCPUCoreForTargetCompilation()
14324514f5e3Sopenharmony_ci{
14334514f5e3Sopenharmony_ci    if (!deviceIsScreenOff_ || deviceThermalLevel_ > 0) {
14344514f5e3Sopenharmony_ci        BindSmallCpuCore();
14354514f5e3Sopenharmony_ci    } else {
14364514f5e3Sopenharmony_ci        BindMidCpuCore();
14374514f5e3Sopenharmony_ci    }
14384514f5e3Sopenharmony_ci}
14394514f5e3Sopenharmony_ci
14404514f5e3Sopenharmony_civoid JSRuntimeOptions::SetOptionsForTargetCompilation()
14414514f5e3Sopenharmony_ci{
14424514f5e3Sopenharmony_ci    if (IsTargetCompilerMode()) {
14434514f5e3Sopenharmony_ci        SetTargetTriple("aarch64-unknown-linux-gnu");
14444514f5e3Sopenharmony_ci        SetMaxAotMethodSize(MAX_APP_COMPILE_METHOD_SIZE);
14454514f5e3Sopenharmony_ci        SetEnableOptTrackField(false);
14464514f5e3Sopenharmony_ci        SetEnableOptInlining(false);
14474514f5e3Sopenharmony_ci        SetEnableArrayBoundsCheckElimination(false);
14484514f5e3Sopenharmony_ci        if (IsPartialCompilerMode()) {
14494514f5e3Sopenharmony_ci            SetEnableOptPGOType(true);
14504514f5e3Sopenharmony_ci            if (IsPGOProfilerPathEmpty()) {
14514514f5e3Sopenharmony_ci                LOG_ECMA(DEBUG) << "no pgo profile file in partial mode!";
14524514f5e3Sopenharmony_ci            }
14534514f5e3Sopenharmony_ci        } else {
14544514f5e3Sopenharmony_ci            SetEnableOptPGOType(false);
14554514f5e3Sopenharmony_ci            SetPGOProfilerPath("");
14564514f5e3Sopenharmony_ci        }
14574514f5e3Sopenharmony_ci        BindCPUCoreForTargetCompilation();
14584514f5e3Sopenharmony_ci    }
14594514f5e3Sopenharmony_ci    if (IsCompilerPipelineHostAOT()) {
14604514f5e3Sopenharmony_ci        SetTargetTriple("aarch64-unknown-linux-gnu");
14614514f5e3Sopenharmony_ci        SetMaxAotMethodSize(MAX_APP_COMPILE_METHOD_SIZE);
14624514f5e3Sopenharmony_ci        SetEnableOptTrackField(false);
14634514f5e3Sopenharmony_ci        SetEnableOptInlining(false);
14644514f5e3Sopenharmony_ci        SetEnableArrayBoundsCheckElimination(false);
14654514f5e3Sopenharmony_ci        SetEnableOptPGOType(true);
14664514f5e3Sopenharmony_ci        SetFastAOTCompileMode(true);
14674514f5e3Sopenharmony_ci        SetOptLevel(DEFAULT_OPT_LEVEL);
14684514f5e3Sopenharmony_ci        SetCompilerEnableLiteCG(true);
14694514f5e3Sopenharmony_ci        SetEnableLoweringBuiltin(false);
14704514f5e3Sopenharmony_ci    }
14714514f5e3Sopenharmony_ci}
14724514f5e3Sopenharmony_ci}
1473