From 2671f3fa2128e60895fb53f883f4b7a0a49f1f71 Mon Sep 17 00:00:00 2001 From: Andrey Efremov Date: Thu, 1 Jun 2023 17:59:19 +0300 Subject: [PATCH] Fix tests after optimizing inlined call/return Signed-off-by: Andrey Efremov --- tests/checked/ecma_inlining_monomorphic.js | 3 ++- tests/compiler/checks_elimination_ecma_test.cpp | 13 +++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/tests/checked/ecma_inlining_monomorphic.js b/tests/checked/ecma_inlining_monomorphic.js index ebc103feb..e4ae0c887 100644 --- a/tests/checked/ecma_inlining_monomorphic.js +++ b/tests/checked/ecma_inlining_monomorphic.js @@ -24,9 +24,10 @@ //! METHOD "test" //! PASS_AFTER "IrBuilder" //! INST "DynamicCallCheck" -//! PASS_AFTER "ChecksElimination" //! INST "CallDynamic" +//! PASS_AFTER "ChecksElimination" //! INST_NOT "DynamicCallCheck" +//! INST_NOT "CallDynamic" function one() { return 1; diff --git a/tests/compiler/checks_elimination_ecma_test.cpp b/tests/compiler/checks_elimination_ecma_test.cpp index 626e9e101..746cdcabf 100644 --- a/tests/compiler/checks_elimination_ecma_test.cpp +++ b/tests/compiler/checks_elimination_ecma_test.cpp @@ -712,9 +712,12 @@ TEST_F(CheckEliminationEcmaTest, EliminateDynamicCallCheckInlined) INST(3, Opcode::AnyTypeCheck).any().AnyType(AnyBaseType::ECMASCRIPT_FUNCTION_TYPE).Inputs(0, 2); INST(4, Opcode::DynamicCallCheck).any().Inputs(3, 2); INST(5, Opcode::CallDynamic).any().Inlined().InputsAutoType(4, 10, 10, 1, 2); - INST(6, Opcode::ReturnInlined).Inputs(2); + INST(6, Opcode::SaveState).Inputs(0, 1).SrcVregs({0, 1}).Caller(5); + // do something to prevent cleanup of call/return inlined + INST(7, Opcode::AnyTypeCheck).any().AnyType(AnyBaseType::ECMASCRIPT_INT_TYPE).Inputs(1, 6); + INST(8, Opcode::ReturnInlined).Inputs(2); - INST(9, Opcode::Return).any().Inputs(5); + INST(9, Opcode::Return).any().Inputs(7); } } @@ -735,9 +738,11 @@ TEST_F(CheckEliminationEcmaTest, EliminateDynamicCallCheckInlined) INST(2, Opcode::SaveState).Inputs(0, 1).SrcVregs({0, 1}); INST(5, Opcode::CallDynamic).any().Inlined().InputsAutoType(0, 10, 10, 1, 2); - INST(6, Opcode::ReturnInlined).Inputs(2); + INST(6, Opcode::SaveState).Inputs(0, 1).SrcVregs({0, 1}); + INST(7, Opcode::AnyTypeCheck).any().AnyType(AnyBaseType::ECMASCRIPT_INT_TYPE).Inputs(1, 6); + INST(8, Opcode::ReturnInlined).Inputs(2); - INST(9, Opcode::Return).any().Inputs(5); + INST(9, Opcode::Return).any().Inputs(7); } } -- Gitee