From f523c226f8a3d804a86c3ba17c1b86b98bfe5fc2 Mon Sep 17 00:00:00 2001 From: Igor Oberman Date: Thu, 28 Dec 2023 16:44:59 +0300 Subject: [PATCH] Refactor intrinsics flags Signed-off-by: Igor Oberman --- BUILD.gn | 4 +- .../ir_builder/ecmascript_inst_builder.cpp | 4 +- runtime/CMakeLists.txt | 1 + runtime/builtins/CMakeLists.txt | 7 +- runtime/ecma_runtime.yaml | 111 ++---------------- 5 files changed, 24 insertions(+), 103 deletions(-) diff --git a/BUILD.gn b/BUILD.gn index 81c1e59ac..e71b7fb0b 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -1,4 +1,4 @@ -# Copyright (c) 2021-2022 Huawei Device Co., Ltd. +# Copyright (c) 2021-2024 Huawei Device Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at @@ -100,6 +100,7 @@ ark_gen_file("ecma_intrinsics_gen_arkruntime") { requires = [ "$ark_root/runtime/templates/intrinsics.rb", "$ark_root/runtime/templates/runtime.rb", + "$ark_root/libpandabase/utils.rb", ] output_file = "$target_gen_dir/intrinsics_gen.cpp" } @@ -148,6 +149,7 @@ ark_gen("ecma_builtins_gen") { "$ark_root/compiler/optimizer/templates/instructions.rb", "$ark_root/runtime/templates/intrinsics.rb", "$ark_root/plugins/ecmascript/runtime/builtins/templates/builtins.rb", + "$ark_root/libpandabase/utils.rb", ] extra_dependencies = [ "$ark_root/runtime:arkruntime_gen_intrinsics_yaml" ] extra_argv = [ diff --git a/compiler/optimizer/ir_builder/ecmascript_inst_builder.cpp b/compiler/optimizer/ir_builder/ecmascript_inst_builder.cpp index f04e68204..b3f341315 100644 --- a/compiler/optimizer/ir_builder/ecmascript_inst_builder.cpp +++ b/compiler/optimizer/ir_builder/ecmascript_inst_builder.cpp @@ -1,5 +1,5 @@ /** - * Copyright (c) 2021-2022 Huawei Device Co., Ltd. + * Copyright (c) 2021-2024 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -138,7 +138,6 @@ void InstBuilder::BuildEcmaNewobjdynrange(const BytecodeInstruction *bcInst) auto inst = graph->CreateInstIntrinsic(DataType::ANY, bcPc, RuntimeInterface::IntrinsicId::INTRINSIC_NEWOBJ_DYNRANGE_HANDLED); AdjustFlags(inst->GetIntrinsicId(), inst); - inst->SetFlag(inst_flags::CAN_THROW); auto saveState = CreateSaveState(Opcode::SaveState, bcPc); AddInstruction(saveState); @@ -197,7 +196,6 @@ void InstBuilder::BuildEcmaGetunmappedargs(const BytecodeInstruction *bcInst) auto inst = graph->CreateInstIntrinsic(DataType::ANY, bcPc, RuntimeInterface::IntrinsicId::INTRINSIC_GET_UNMAPPED_ARGS); AdjustFlags(inst->GetIntrinsicId(), inst); - inst->SetFlag(inst_flags::CAN_THROW); auto saveState = CreateSaveState(Opcode::SaveState, bcPc); AddInstruction(saveState); diff --git a/runtime/CMakeLists.txt b/runtime/CMakeLists.txt index e3f0a6ab3..0204c110c 100644 --- a/runtime/CMakeLists.txt +++ b/runtime/CMakeLists.txt @@ -241,6 +241,7 @@ panda_gen( REQUIRES ${CMAKE_SOURCE_DIR}/runtime/templates/intrinsics.rb ${CMAKE_SOURCE_DIR}/runtime/templates/runtime.rb + ${PANDA_ROOT}/libpandabase/utils.rb SOURCE ${ECMA_SRC_DIR}/templates DESTINATION ${ECMA_GEN_DIR} ) diff --git a/runtime/builtins/CMakeLists.txt b/runtime/builtins/CMakeLists.txt index 5ac167318..a58b718a5 100644 --- a/runtime/builtins/CMakeLists.txt +++ b/runtime/builtins/CMakeLists.txt @@ -15,7 +15,12 @@ panda_gen( DATA ${CMAKE_CURRENT_SOURCE_DIR}/templates/builtins.yaml TARGET_NAME ecma_builtins_gen TEMPLATES ${BUILTIN_TEMPLATES} - REQUIRES ${PANDA_ROOT}/templates/common.rb ${PANDA_ROOT}/compiler/optimizer/templates/instructions.rb ${PANDA_ROOT}/runtime/templates/intrinsics.rb ${CMAKE_CURRENT_SOURCE_DIR}/templates/builtins.rb + REQUIRES + ${PANDA_ROOT}/templates/common.rb + ${PANDA_ROOT}/compiler/optimizer/templates/instructions.rb + ${PANDA_ROOT}/runtime/templates/intrinsics.rb + ${CMAKE_CURRENT_SOURCE_DIR}/templates/builtins.rb + ${PANDA_ROOT}/libpandabase/utils.rb SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/templates DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/generated EXTRA_ARGV ${INTRINSICS_YAML_PATH} ${INSTRUCTIONS_YAML_PATH} diff --git a/runtime/ecma_runtime.yaml b/runtime/ecma_runtime.yaml index d90f91338..766a31d0b 100644 --- a/runtime/ecma_runtime.yaml +++ b/runtime/ecma_runtime.yaml @@ -1,4 +1,4 @@ -# Copyright (c) 2021-2022 Huawei Device Co., Ltd. +# Copyright (c) 2021-2024 Huawei Device Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at @@ -195,7 +195,6 @@ intrinsics: ret: any args: [any, acc] impl: ark::ecmascript::intrinsics::Add2Dyn - set_flags: [heap_inv] fast_path: FastPathEcmaAdd inline_func: IrtocInlineAddDyn inline_need_types: true @@ -210,7 +209,6 @@ intrinsics: ret: any args: [any, acc] impl: ark::ecmascript::intrinsics::Sub2Dyn - set_flags: [heap_inv] fast_path: FastPathEcmaSub inline_func: IrtocInlineSubDyn inline_need_types: true @@ -225,7 +223,6 @@ intrinsics: ret: any args: [any, acc] impl: ark::ecmascript::intrinsics::Mul2Dyn - set_flags: [heap_inv] fast_path: FastPathEcmaMul inline_func: IrtocInlineMulDyn inline_need_types: true @@ -240,7 +237,6 @@ intrinsics: ret: any args: [any, acc] impl: ark::ecmascript::intrinsics::Div2Dyn - set_flags: [heap_inv] fast_path: FastPathEcmaDiv inline_func: IrtocInlineDivDyn inline_need_types: true @@ -255,7 +251,6 @@ intrinsics: ret: any args: [any, acc] impl: ark::ecmascript::intrinsics::Mod2Dyn - set_flags: [heap_inv] inline_func: IrtocInlineModDyn inline_need_types: true @@ -269,7 +264,6 @@ intrinsics: ret: any args: [any, acc] impl: ark::ecmascript::intrinsics::EqDyn - set_flags: [heap_inv] inline_func: InlineEqDyn inline_need_types: true @@ -283,7 +277,6 @@ intrinsics: ret: any args: [any, acc] impl: ark::ecmascript::intrinsics::NotEqDyn - set_flags: [heap_inv] inline_func: InlineNotEqDyn inline_need_types: true @@ -297,7 +290,6 @@ intrinsics: ret: any args: [any, acc] impl: ark::ecmascript::intrinsics::LessDyn - set_flags: [heap_inv] fast_path: FastPathEcmaLt inline_func: IrtocInlineCompareLtDyn inline_need_types: true @@ -312,7 +304,6 @@ intrinsics: ret: any args: [any, acc] impl: ark::ecmascript::intrinsics::LessEqDyn - set_flags: [heap_inv] fast_path: FastPathEcmaLe inline_func: IrtocInlineCompareLeDyn inline_need_types: true @@ -327,7 +318,6 @@ intrinsics: ret: any args: [any, acc] impl: ark::ecmascript::intrinsics::GreaterDyn - set_flags: [heap_inv] fast_path: FastPathEcmaGt inline_func: IrtocInlineCompareGtDyn inline_need_types: true @@ -342,7 +332,6 @@ intrinsics: ret: any args: [any, acc] impl: ark::ecmascript::intrinsics::GreaterEqDyn - set_flags: [heap_inv] fast_path: FastPathEcmaGe inline_func: IrtocInlineCompareGeDyn inline_need_types: true @@ -358,7 +347,6 @@ intrinsics: args: [any, acc, u16, any] impl: ark::ecmascript::intrinsics::LdObjByValue fast_path: FastPathLdObjByValue - set_flags: [heap_inv] inline_func: InlineLdObjByValue - name: TryLdGlobalByValue @@ -371,7 +359,6 @@ intrinsics: ret: any args: [u16, any] impl: ark::ecmascript::intrinsics::TryLdGlobalByValue - set_flags: [heap_inv] - name: StObjByValue space: ecmascript @@ -384,7 +371,6 @@ intrinsics: args: [any, any, acc, u16, any] impl: ark::ecmascript::intrinsics::StObjByValue fast_path: FastPathStObjByValue - set_flags: [heap_inv] inline_func: InlineStObjByValue - name: Shl2Dyn @@ -397,7 +383,6 @@ intrinsics: ret: any args: [any, acc] impl: ark::ecmascript::intrinsics::Shl2Dyn - set_flags: [heap_inv] fast_path: FastPathEcmaShl inline_func: IrtocInlineShlDyn inline_need_types: true @@ -412,7 +397,6 @@ intrinsics: ret: any args: [any, acc] impl: ark::ecmascript::intrinsics::Shr2Dyn - set_flags: [heap_inv] fast_path: FastPathEcmaShr inline_func: IrtocInlineShrDyn inline_need_types: true @@ -427,7 +411,6 @@ intrinsics: ret: any args: [any, acc] impl: ark::ecmascript::intrinsics::Ashr2Dyn - set_flags: [heap_inv] - name: And2Dyn space: ecmascript @@ -439,7 +422,6 @@ intrinsics: ret: any args: [any, acc] impl: ark::ecmascript::intrinsics::And2Dyn - set_flags: [heap_inv] fast_path: FastPathEcmaAnd inline_func: IrtocInlineAndDyn inline_need_types: true @@ -454,7 +436,6 @@ intrinsics: ret: any args: [any, acc] impl: ark::ecmascript::intrinsics::Or2Dyn - set_flags: [heap_inv] fast_path: FastPathEcmaOr inline_func: IrtocInlineOrDyn inline_need_types: true @@ -469,7 +450,6 @@ intrinsics: ret: any args: [any, acc] impl: ark::ecmascript::intrinsics::Xor2Dyn - set_flags: [heap_inv] fast_path: FastPathEcmaXor inline_func: IrtocInlineXorDyn inline_need_types: true @@ -484,7 +464,6 @@ intrinsics: ret: any args: [any] impl: ark::ecmascript::intrinsics::Tonumber - set_flags: [heap_inv] inline_func: InlineToNumber inline_need_types: true @@ -498,7 +477,6 @@ intrinsics: ret: any args: [any] impl: ark::ecmascript::intrinsics::NegDyn - set_flags: [heap_inv] fast_path: FastPathEcmaNeg inline_func: IrtocInlineNegDyn inline_need_types: true @@ -513,7 +491,6 @@ intrinsics: ret: any args: [any] impl: ark::ecmascript::intrinsics::NotDyn - set_flags: [heap_inv] fast_path: FastPathEcmaNot inline_func: IrtocInlineNotDyn inline_need_types: true @@ -528,7 +505,6 @@ intrinsics: ret: any args: [any] impl: ark::ecmascript::intrinsics::IncDyn - set_flags: [heap_inv] fast_path: FastPathEcmaInc inline_func: IrtocInlineIncDyn inline_need_types: true @@ -543,7 +519,6 @@ intrinsics: ret: any args: [any] impl: ark::ecmascript::intrinsics::DecDyn - set_flags: [heap_inv] fast_path: FastPathEcmaDec inline_func: IrtocInlineDecDyn inline_need_types: true @@ -558,7 +533,6 @@ intrinsics: ret: any args: [acc] impl: ark::ecmascript::intrinsics::RethrowDyn - set_flags: [heap_inv] - name: ThrowDyn space: ecmascript @@ -581,7 +555,6 @@ intrinsics: ret: any args: [any, any] impl: ark::ecmascript::intrinsics::Delobjprop - set_flags: [heap_inv] - name: Defineglobalvar space: ecmascript @@ -646,7 +619,6 @@ intrinsics: args: [u16, any, any] stackrange: true impl: ark::ecmascript::intrinsics::NewobjDynrange - set_flags: [heap_inv] - name: NewobjDynrangeHandled space: ecmascript @@ -659,7 +631,6 @@ intrinsics: args: [u16, any, any] stackrange: true impl: ark::ecmascript::intrinsics::NewobjDynrangeHandled - set_flags: [heap_inv] - name: AllocDynObject space: ecmascript @@ -670,7 +641,6 @@ intrinsics: signature: ret: any args: [any, any] - set_flags: [heap_inv] codegen_func: CreateAllocDynObject - name: RefeqDyn @@ -693,7 +663,6 @@ intrinsics: ret: any args: [any, acc] impl: ark::ecmascript::intrinsics::ExpDyn - set_flags: [heap_inv] - name: TypeofDyn space: ecmascript @@ -728,7 +697,6 @@ intrinsics: ret: any args: [any, acc] impl: ark::ecmascript::intrinsics::IsinDyn - set_flags: [heap_inv] - name: InstanceofDyn space: ecmascript @@ -740,7 +708,6 @@ intrinsics: ret: any args: [any, acc] impl: ark::ecmascript::intrinsics::InstanceofDyn - set_flags: [heap_inv] - name: StrictNotEqDyn space: ecmascript @@ -751,7 +718,6 @@ intrinsics: ret: any args: [any, acc] impl: ark::ecmascript::intrinsics::StrictNotEqDyn - set_flags: [heap_inv] clear_flags: [no_dce] codegen_func: CreateFastPathStrictNotEq inline_func: InlineStrictNotEqDyn @@ -766,7 +732,6 @@ intrinsics: ret: any args: [any, acc] impl: ark::ecmascript::intrinsics::StrictEqDyn - set_flags: [heap_inv] codegen_func: CreateFastPathStrictEq inline_func: InlineStrictEqDyn inline_need_types: true @@ -781,7 +746,6 @@ intrinsics: ret: any args: [any, any, acc] impl: ark::ecmascript::intrinsics::NewobjspreadDyn - set_flags: [heap_inv] - name: CallspreadDyn space: ecmascript @@ -793,7 +757,6 @@ intrinsics: ret: any args: [any, any, any] impl: ark::ecmascript::intrinsics::CallspreadDyn - set_flags: [heap_inv] - name: JfalseDyn space: ecmascript @@ -856,7 +819,6 @@ intrinsics: ret: void args: [u16, u16, acc, any] impl: ark::ecmascript::intrinsics::StLexVarDyn - set_flags: [heap_inv] codegen_func: StLexVarDyn inline_func: InlineStLexVarDyn @@ -870,7 +832,6 @@ intrinsics: ret: any args: [any, u16, u16, acc, any] impl: ark::ecmascript::intrinsics::StLexDyn - set_flags: [heap_inv] codegen_func: StLexDyn inline_func: InlineStLexDyn @@ -883,7 +844,7 @@ intrinsics: ret: any args: [u16, u16, any] impl: ark::ecmascript::intrinsics::LdLexVarDyn - clear_flags: [no_dce, runtime_call, require_state] + clear_flags: [no_dce, runtime_call, require_state, can_throw] codegen_func: LdLexVarDyn inline_func: InlineLdLexVarDyn @@ -956,7 +917,6 @@ intrinsics: ret: any args: [acc] impl: ark::ecmascript::intrinsics::Toboolean - set_flags: [heap_inv] clear_flags: [no_dce] use_thread: false inline_func: IrtocInlineToBooleanDyn @@ -1209,7 +1169,6 @@ intrinsics: signature: ret: any args: [any, acc] - set_flags: [heap_inv] impl: ark::ecmascript::intrinsics::AsyncFunctionAwait - name: AsyncFunctionResolve @@ -1221,7 +1180,6 @@ intrinsics: signature: ret: any args: [any, acc] - set_flags: [heap_inv] impl: ark::ecmascript::intrinsics::AsyncFunctionResolve - name: AsyncFunctionReject @@ -1233,7 +1191,6 @@ intrinsics: signature: ret: any args: [any, acc] - set_flags: [heap_inv] impl: ark::ecmascript::intrinsics::AsyncFunctionReject - name: AsyncGeneratorResolve @@ -1245,7 +1202,6 @@ intrinsics: signature: ret: any args: [any, acc] - set_flags: [heap_inv] impl: ark::ecmascript::intrinsics::AsyncGeneratorResolve - name: AsyncGeneratorReject @@ -1257,7 +1213,6 @@ intrinsics: signature: ret: any args: [any, acc] - set_flags: [heap_inv] impl: ark::ecmascript::intrinsics::AsyncGeneratorReject - name: ThrowUndefined @@ -1338,7 +1293,6 @@ intrinsics: ret: void args: [u16, any, acc] impl: ark::ecmascript::intrinsics::TryStGlobalByValue - set_flags: [heap_inv] - name: GetMethod space: ecmascript @@ -1350,7 +1304,6 @@ intrinsics: ret: any args: [any, any] impl: ark::ecmascript::intrinsics::GetMethod - set_flags: [heap_inv] - name: GetTemplateObject space: ecmascript @@ -1362,7 +1315,6 @@ intrinsics: ret: any args: [any] impl: ark::ecmascript::intrinsics::GetTemplateObject - set_flags: [heap_inv] - name: TryLdGlobalByName space: ecmascript @@ -1375,7 +1327,6 @@ intrinsics: args: [any, u16, any] impl: ark::ecmascript::intrinsics::TryLdGlobalByName inline_func: InlineTryLdGlobalByName - set_flags: [heap_inv] - name: TryStGlobalByName space: ecmascript @@ -1387,7 +1338,6 @@ intrinsics: ret: any args: [any, acc, u16, any] impl: ark::ecmascript::intrinsics::TryStGlobalByName - set_flags: [heap_inv] - name: LdGlobalVar space: ecmascript @@ -1400,7 +1350,6 @@ intrinsics: args: [any, u16, any] impl: ark::ecmascript::intrinsics::LdGlobalVar fast_path: FastPathLdGlobalVar - set_flags: [heap_inv] - name: StGlobalVar space: ecmascript @@ -1413,7 +1362,6 @@ intrinsics: args: [any, acc, u16, any] impl: ark::ecmascript::intrinsics::StGlobalVar fast_path: FastPathStGlobalVar - set_flags: [heap_inv] - name: LdObjByName space: ecmascript @@ -1427,7 +1375,6 @@ intrinsics: impl: ark::ecmascript::intrinsics::LdObjByName fast_path: FastPathLdObjByName inline_func: InlineLdObjByName - set_flags: [heap_inv] - name: StObjByName space: ecmascript @@ -1441,7 +1388,6 @@ intrinsics: impl: ark::ecmascript::intrinsics::StObjByName fast_path: FastPathStObjByName inline_func: InlineStObjByName - set_flags: [heap_inv] - name: LdObjByIndex space: ecmascript @@ -1453,7 +1399,6 @@ intrinsics: ret: any args: [u32, acc] impl: ark::ecmascript::intrinsics::LdObjByIndex - set_flags: [heap_inv] - name: StObjByIndex space: ecmascript @@ -1465,7 +1410,6 @@ intrinsics: ret: any args: [u32, any, acc] impl: ark::ecmascript::intrinsics::StObjByIndex - set_flags: [heap_inv] - name: GetNextPropName space: ecmascript @@ -1477,7 +1421,6 @@ intrinsics: ret: any args: [any] impl: ark::ecmascript::intrinsics::GetNextPropName - set_flags: [heap_inv] - name: ReturnUndefined space: ecmascript @@ -1499,7 +1442,6 @@ intrinsics: ret: any args: [acc] impl: ark::ecmascript::intrinsics::Call0Dyn - set_flags: [heap_inv] - name: Call1Dyn space: ecmascript @@ -1511,7 +1453,6 @@ intrinsics: ret: any args: [any, acc] impl: ark::ecmascript::intrinsics::Call1Dyn - set_flags: [heap_inv] - name: Call2Dyn space: ecmascript @@ -1523,7 +1464,6 @@ intrinsics: ret: any args: [any, any, acc] impl: ark::ecmascript::intrinsics::Call2Dyn - set_flags: [heap_inv] - name: Call3Dyn space: ecmascript @@ -1535,7 +1475,6 @@ intrinsics: ret: any args: [any, any, any, acc] impl: ark::ecmascript::intrinsics::Call3Dyn - set_flags: [heap_inv] - name: Call0ThisDyn space: ecmascript @@ -1547,7 +1486,6 @@ intrinsics: ret: any args: [any, acc] impl: ark::ecmascript::intrinsics::Call0ThisDyn - set_flags: [heap_inv] - name: Call1ThisDyn space: ecmascript @@ -1559,7 +1497,6 @@ intrinsics: ret: any args: [any, any, acc] impl: ark::ecmascript::intrinsics::Call1ThisDyn - set_flags: [heap_inv] - name: Call2ThisDyn space: ecmascript @@ -1571,7 +1508,6 @@ intrinsics: ret: any args: [any, any, any, acc] impl: ark::ecmascript::intrinsics::Call2ThisDyn - set_flags: [heap_inv] - name: Call3ThisDyn space: ecmascript @@ -1583,7 +1519,6 @@ intrinsics: ret: any args: [any, any, any, any, acc] impl: ark::ecmascript::intrinsics::Call3ThisDyn - set_flags: [heap_inv] - name: CalliRangeDyn space: ecmascript @@ -1595,7 +1530,6 @@ intrinsics: ret: any args: [u16, any] impl: ark::ecmascript::intrinsics::CalliRangeDyn - set_flags: [heap_inv] - name: CalliRangeDynInterp space: ecmascript @@ -1607,7 +1541,6 @@ intrinsics: ret: any args: [u16, any] impl: ark::ecmascript::intrinsics::CalliRangeDynInterp - set_flags: [heap_inv] - name: CalliThisRangeDyn space: ecmascript @@ -1619,7 +1552,6 @@ intrinsics: ret: any args: [u16, any] impl: ark::ecmascript::intrinsics::CalliThisRangeDyn - set_flags: [heap_inv] - name: CreateEmptyObject space: ecmascript @@ -1654,7 +1586,6 @@ intrinsics: ret: any args: [any, any] impl: ark::ecmascript::intrinsics::CopyDataProperties - set_flags: [heap_inv] - name: DefineGetterSetterByValue space: ecmascript @@ -1666,7 +1597,6 @@ intrinsics: ret: any args: [any, any, any, any, acc] impl: ark::ecmascript::intrinsics::DefineGetterSetterByValue - set_flags: [heap_inv] - name: CreateEmptyArray space: ecmascript @@ -1713,7 +1643,6 @@ intrinsics: ret: any args: [any, any, acc] impl: ark::ecmascript::intrinsics::StOwnByName - set_flags: [heap_inv] - name: StOwnByIndex space: ecmascript @@ -1725,7 +1654,6 @@ intrinsics: ret: any args: [u32, any, acc] impl: ark::ecmascript::intrinsics::StOwnByIndex - set_flags: [heap_inv] - name: StOwnByValue space: ecmascript @@ -1737,7 +1665,6 @@ intrinsics: ret: any args: [any, any, acc] impl: ark::ecmascript::intrinsics::StOwnByValue - set_flags: [heap_inv] - name: StArraySpread space: ecmascript @@ -1749,7 +1676,6 @@ intrinsics: ret: any args: [any, any, acc] impl: ark::ecmascript::intrinsics::StArraySpread - set_flags: [heap_inv] - name: GetIterator space: ecmascript @@ -1761,7 +1687,6 @@ intrinsics: ret: any args: [acc] impl: ark::ecmascript::intrinsics::GetIterator - set_flags: [heap_inv] - name: GetAsyncIterator space: ecmascript @@ -1773,7 +1698,6 @@ intrinsics: ret: any args: [acc] impl: ark::ecmascript::intrinsics::GetAsyncIterator - set_flags: [heap_inv] - name: ThrowIfNotObject space: ecmascript @@ -1830,7 +1754,6 @@ intrinsics: ret: any args: [any, acc] impl: ark::ecmascript::intrinsics::CloseIterator - set_flags: [heap_inv] - name: ImportModule space: ecmascript @@ -1877,7 +1800,6 @@ intrinsics: args: [any, any] impl: ark::ecmascript::intrinsics::LdModvarByName clear_flags: [no_dce] - set_flags: [heap_inv] - name: LoadClassComputedInstanceFields space: ecmascript @@ -1999,7 +1921,6 @@ intrinsics: ret: any args: [u16, any, any, acc] impl: ark::ecmascript::intrinsics::SuperCall - set_flags: [heap_inv] - name: SuperCallSpread space: ecmascript @@ -2011,7 +1932,6 @@ intrinsics: ret: any args: [any, any, acc] impl: ark::ecmascript::intrinsics::SuperCallSpread - set_flags: [heap_inv] - name: DefineMethod space: ecmascript @@ -2034,7 +1954,6 @@ intrinsics: ret: any args: [any, acc, any] impl: ark::ecmascript::intrinsics::LdSuperByName - set_flags: [heap_inv] - name: StSuperByName space: ecmascript @@ -2046,7 +1965,6 @@ intrinsics: ret: any args: [any, any, acc, any] impl: ark::ecmascript::intrinsics::StSuperByName - set_flags: [heap_inv] - name: StSuperByValue space: ecmascript @@ -2058,7 +1976,6 @@ intrinsics: ret: any args: [any, any, acc, any] impl: ark::ecmascript::intrinsics::StSuperByValue - set_flags: [heap_inv] - name: LdSuperByValue space: ecmascript @@ -2070,7 +1987,6 @@ intrinsics: ret: any args: [any, acc, any] impl: ark::ecmascript::intrinsics::LdSuperByValue - set_flags: [heap_inv] - name: CreateObjectHavingMethod space: ecmascript @@ -2205,7 +2121,7 @@ intrinsics: args: [any] impl: ark::ecmascript::intrinsics::GetObjectClassType use_thread: false - clear_flags: [no_dce, barrier, require_state, runtime_call] + clear_flags: [no_dce, barrier, require_state, runtime_call, can_throw] - name: IsNan space: ecmascript @@ -2229,7 +2145,7 @@ intrinsics: args: [any] impl: ark::ecmascript::intrinsics::GetWeakReferent use_thread: false - clear_flags: [no_dce, barrier, require_state, runtime_call] + clear_flags: [no_dce, barrier, require_state, runtime_call, can_throw] - name: DynClassIsDictionaryElement space: ecmascript @@ -2242,7 +2158,7 @@ intrinsics: impl: ark::ecmascript::intrinsics::DynClassIsDictionaryElement codegen_func: CreateDynClassIsDictionaryElement use_thread: false - clear_flags: [no_dce, barrier, require_state, runtime_call] + clear_flags: [no_dce, barrier, require_state, runtime_call, can_throw] - name: DynClassIsExtensible space: ecmascript @@ -2255,7 +2171,7 @@ intrinsics: impl: ark::ecmascript::intrinsics::DynClassIsExtensible codegen_func: CreateDynClassIsExtensible use_thread: false - clear_flags: [no_dce, barrier, require_state, runtime_call] + clear_flags: [no_dce, barrier, require_state, runtime_call, can_throw] - name: DynObjectGetClass space: ecmascript @@ -2268,7 +2184,7 @@ intrinsics: impl: ark::ecmascript::intrinsics::DynObjectGetClass codegen_func: CreateDynObjectGetClass use_thread: false - clear_flags: [no_dce, barrier, require_state, runtime_call] + clear_flags: [no_dce, barrier, require_state, runtime_call, can_throw] - name: DynObjectSetClass space: ecmascript @@ -2281,7 +2197,7 @@ intrinsics: impl: ark::ecmascript::intrinsics::DynObjectSetClass codegen_func: CreateDynObjectSetClass use_thread: false - clear_flags: [require_state, runtime_call] + clear_flags: [require_state, runtime_call, can_throw] - name: DynClassNumberOfProps space: ecmascript @@ -2294,7 +2210,7 @@ intrinsics: impl: ark::ecmascript::intrinsics::DynClassNumberOfProps codegen_func: CreateDynClassNumberOfProps use_thread: false - clear_flags: [no_dce, barrier, require_state, runtime_call] + clear_flags: [no_dce, barrier, require_state, runtime_call, can_throw] - name: DynClassGetHash space: ecmascript @@ -2307,7 +2223,7 @@ intrinsics: impl: ark::ecmascript::intrinsics::DynClassGetHash codegen_func: CreateDynClassGetHash use_thread: false - clear_flags: [no_dce, barrier, require_state, runtime_call] + clear_flags: [no_dce, barrier, require_state, runtime_call, can_throw] - name: LdObjDynByName space: ecmascript @@ -2321,7 +2237,7 @@ intrinsics: codegen_func: CreateLdObjDynByName use_thread: false is_fastpath: true - clear_flags: [barrier, require_state] + clear_flags: [barrier, require_state, can_throw] - name: StObjDynByName space: ecmascript @@ -2335,7 +2251,7 @@ intrinsics: codegen_func: CreateStObjDynByName use_thread: false is_fastpath: true - clear_flags: [barrier, require_state] + clear_flags: [barrier, require_state, can_throw] - name: ResolveAllocResult space: ecmascript @@ -2347,7 +2263,6 @@ intrinsics: ret: any args: [any, any, any] codegen_func: CreateResolveAllocResult - set_flags: [can_throw] inline_func: InlineResolveAllocResult - name: EcmaStringEquals @@ -2361,4 +2276,4 @@ intrinsics: args: [any, any] codegen_func: CreateEcmaStringEquals need_param_locations: true - clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call] + safe_intrinsic: true -- Gitee