diff --git a/test/js-perf-test/BytecodeHandlers/LdaGlobal.js b/test/js-perf-test/BytecodeHandlers/LdaGlobal.js new file mode 100644 index 0000000000..a986f5f18f --- /dev/null +++ b/test/js-perf-test/BytecodeHandlers/LdaGlobal.js @@ -0,0 +1,60 @@ +// Copyright 2019 the V8 project authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +function addBenchmark(name, test) { + new BenchmarkSuite(name, [1000], + [ + new Benchmark(name, false, false, 0, test) + ]); +} + +addBenchmark('LoadGlobal', ldaGlobal); +addBenchmark('LoadGlobalInsideTypeof', ldaGlobalInsideTypeof); + +var g_var = 10; + +function ldaGlobal() { + for (var i = 0; i < 1000; ++i) { + g_var; g_var; g_var; g_var; g_var; g_var; g_var; g_var; g_var; g_var; + g_var; g_var; g_var; g_var; g_var; g_var; g_var; g_var; g_var; g_var; + g_var; g_var; g_var; g_var; g_var; g_var; g_var; g_var; g_var; g_var; + g_var; g_var; g_var; g_var; g_var; g_var; g_var; g_var; g_var; g_var; + g_var; g_var; g_var; g_var; g_var; g_var; g_var; g_var; g_var; g_var; + g_var; g_var; g_var; g_var; g_var; g_var; g_var; g_var; g_var; g_var; + g_var; g_var; g_var; g_var; g_var; g_var; g_var; g_var; g_var; g_var; + g_var; g_var; g_var; g_var; g_var; g_var; g_var; g_var; g_var; g_var; + g_var; g_var; g_var; g_var; g_var; g_var; g_var; g_var; g_var; g_var; + g_var; g_var; g_var; g_var; g_var; g_var; g_var; g_var; g_var; g_var; + } +} + +function ldaGlobalInsideTypeof() { + for (var i = 0; i < 1000; ++i) { + typeof(g_var); typeof(g_var); typeof(g_var); typeof(g_var); + typeof(g_var); typeof(g_var); typeof(g_var); typeof(g_var); + typeof(g_var); typeof(g_var); typeof(g_var); typeof(g_var); + typeof(g_var); typeof(g_var); typeof(g_var); typeof(g_var); + typeof(g_var); typeof(g_var); typeof(g_var); typeof(g_var); + typeof(g_var); typeof(g_var); typeof(g_var); typeof(g_var); + typeof(g_var); typeof(g_var); typeof(g_var); typeof(g_var); + typeof(g_var); typeof(g_var); typeof(g_var); typeof(g_var); + typeof(g_var); typeof(g_var); typeof(g_var); typeof(g_var); + typeof(g_var); typeof(g_var); typeof(g_var); typeof(g_var); + typeof(g_var); typeof(g_var); typeof(g_var); typeof(g_var); + typeof(g_var); typeof(g_var); typeof(g_var); typeof(g_var); + typeof(g_var); typeof(g_var); typeof(g_var); typeof(g_var); + typeof(g_var); typeof(g_var); typeof(g_var); typeof(g_var); + typeof(g_var); typeof(g_var); typeof(g_var); typeof(g_var); + typeof(g_var); typeof(g_var); typeof(g_var); typeof(g_var); + typeof(g_var); typeof(g_var); typeof(g_var); typeof(g_var); + typeof(g_var); typeof(g_var); typeof(g_var); typeof(g_var); + typeof(g_var); typeof(g_var); typeof(g_var); typeof(g_var); + typeof(g_var); typeof(g_var); typeof(g_var); typeof(g_var); + typeof(g_var); typeof(g_var); typeof(g_var); typeof(g_var); + typeof(g_var); typeof(g_var); typeof(g_var); typeof(g_var); + typeof(g_var); typeof(g_var); typeof(g_var); typeof(g_var); + typeof(g_var); typeof(g_var); typeof(g_var); typeof(g_var); + typeof(g_var); typeof(g_var); typeof(g_var); typeof(g_var); + } +} diff --git a/test/js-perf-test/JSTests3.json b/test/js-perf-test/JSTests3.json index 598e9fc6d1..e2b669614c 100644 --- a/test/js-perf-test/JSTests3.json +++ b/test/js-perf-test/JSTests3.json @@ -371,6 +371,17 @@ {"name": "Object-Lookup-Index-Number"}, {"name": "Object-Lookup-Index-String"} ] + }, + { + "name": "LdaGlobal", + "main": "run.js", + "resources": [ "LdaGlobal.js" ], + "test_flags": [ "LdaGlobal" ], + "results_regexp": "^%s\\-BytecodeHandler\\(Score\\): (.+)$", + "tests": [ + {"name": "LoadGlobal"}, + {"name": "LoadGlobalInsideTypeof"} + ] } ] },