From cf807e6f682b6defced8ed7ee0fb0f7acf5b3ca8 Mon Sep 17 00:00:00 2001 From: Ishin Pavel Date: Fri, 26 May 2023 18:27:29 +0300 Subject: [PATCH] Replace big loop to call intrinsics for compile methods in new_obj tests Signed-off-by: Ishin Pavel --- tests/checked/new_obj.js | 34 +++++++++++++++++++++++++++++- tests/checked/new_obj_profiling.js | 29 ++++++++++++++++++++++++- 2 files changed, 61 insertions(+), 2 deletions(-) diff --git a/tests/checked/new_obj.js b/tests/checked/new_obj.js index 239926223..b4a439afd 100644 --- a/tests/checked/new_obj.js +++ b/tests/checked/new_obj.js @@ -202,7 +202,39 @@ function alloc_8() { //! PASS_AFTER "Codegen" //! INST /Intrinsic.AllocDynObject.*/ //! RUN options: "--compiler-enable-jit=false", entry: "_GLOBAL::func_main_0", force_jit: false -for (var i = 0; i < 100000; ++i) { +RuntimeTesting.PrepareFunctionForOptimization(alloc_1); +alloc_1() +RuntimeTesting.OptimizeFunctionOnNextCall(alloc_1); + +RuntimeTesting.PrepareFunctionForOptimization(alloc_2); +alloc_2() +RuntimeTesting.OptimizeFunctionOnNextCall(alloc_2); + +RuntimeTesting.PrepareFunctionForOptimization(alloc_3); +alloc_3() +RuntimeTesting.OptimizeFunctionOnNextCall(alloc_3); + +RuntimeTesting.PrepareFunctionForOptimization(alloc_4); +alloc_4() +RuntimeTesting.OptimizeFunctionOnNextCall(alloc_4); + +RuntimeTesting.PrepareFunctionForOptimization(alloc_5); +alloc_5() +RuntimeTesting.OptimizeFunctionOnNextCall(alloc_5); + +RuntimeTesting.PrepareFunctionForOptimization(alloc_6); +alloc_6() +RuntimeTesting.OptimizeFunctionOnNextCall(alloc_6); + +RuntimeTesting.PrepareFunctionForOptimization(alloc_7); +alloc_7() +RuntimeTesting.OptimizeFunctionOnNextCall(alloc_7); + +RuntimeTesting.PrepareFunctionForOptimization(alloc_8); +alloc_8() +RuntimeTesting.OptimizeFunctionOnNextCall(alloc_8); + +for (var i = 0; i < 5; ++i) { alloc_1() alloc_2() alloc_3() diff --git a/tests/checked/new_obj_profiling.js b/tests/checked/new_obj_profiling.js index ea7e26064..2406056bc 100644 --- a/tests/checked/new_obj_profiling.js +++ b/tests/checked/new_obj_profiling.js @@ -80,7 +80,34 @@ function monomorphic_call_site_derived_ctor() { //! INST_NOT /Intrinsic.ResolveAllocResult.*/ //! INST_NOT /Intrinsic.NewobjDynrangeHandled*/ //! EVENT /Deoptimization,.*monomorphic_call_site_simple_ctor.*,.*,IFRAME/ -for (var i = 0; i < 100000; ++i) { +RuntimeTesting.PrepareFunctionForOptimization(bimorphic_call_site); +RuntimeTesting.PrepareFunctionForOptimization(megamorphic_call_site); +RuntimeTesting.PrepareFunctionForOptimization(monomorphic_call_site_simple_ctor); +RuntimeTesting.PrepareFunctionForOptimization(monomorphic_call_site_builtin_ctor); +RuntimeTesting.PrepareFunctionForOptimization(monomorphic_call_site_derived_ctor); + +for (var i = 0; i < 10; ++i) { + bimorphic_call_site(simple_ctor0) + bimorphic_call_site(simple_ctor1) + + megamorphic_call_site(simple_ctor0) + megamorphic_call_site(simple_ctor1) + megamorphic_call_site(simple_ctor2) + + monomorphic_call_site_simple_ctor(simple_ctor0) + + monomorphic_call_site_builtin_ctor() + + monomorphic_call_site_derived_ctor() +} + +RuntimeTesting.OptimizeFunctionOnNextCall(bimorphic_call_site); +RuntimeTesting.OptimizeFunctionOnNextCall(megamorphic_call_site); +RuntimeTesting.OptimizeFunctionOnNextCall(monomorphic_call_site_simple_ctor); +RuntimeTesting.OptimizeFunctionOnNextCall(monomorphic_call_site_builtin_ctor); +RuntimeTesting.OptimizeFunctionOnNextCall(monomorphic_call_site_derived_ctor); + +for (var i = 0; i < 2; ++i) { bimorphic_call_site(simple_ctor0) bimorphic_call_site(simple_ctor1) -- Gitee