Commit 1ec4c334 authored by Joyee Cheung's avatar Joyee Cheung Committed by V8 LUCI CQ

[class] add microbenchmarks for private methods

Bug: v8:10793
Change-Id: If9e4884ae1817121d9661eedc1e8806ab7f68214
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3256998
Commit-Queue: Joyee Cheung <joyee@igalia.com>
Reviewed-by: 's avatarShu-yu Guo <syg@chromium.org>
Cr-Commit-Position: refs/heads/main@{#77748}
parent 34b09dbe
...@@ -23,6 +23,8 @@ ...@@ -23,6 +23,8 @@
{"name": "EvaluateMultiPublicFieldClassOpt"}, {"name": "EvaluateMultiPublicFieldClassOpt"},
{"name": "EvaluateSinglePrivateFieldClassOpt"}, {"name": "EvaluateSinglePrivateFieldClassOpt"},
{"name": "EvaluateMultiPrivateFieldClassOpt"}, {"name": "EvaluateMultiPrivateFieldClassOpt"},
{"name": "EvaluateSinglePrivateMethodClassOpt"},
{"name": "EvaluateMultiPrivateMethodClassOpt"},
{"name": "EvaluateSingleComputedFieldClassOpt"}, {"name": "EvaluateSingleComputedFieldClassOpt"},
{"name": "EvaluateMultiComputedFieldClassOpt"} {"name": "EvaluateMultiComputedFieldClassOpt"}
] ]
...@@ -39,6 +41,8 @@ ...@@ -39,6 +41,8 @@
{"name": "EvaluateMultiPublicFieldClassNoOpt"}, {"name": "EvaluateMultiPublicFieldClassNoOpt"},
{"name": "EvaluateSinglePrivateFieldClassNoOpt"}, {"name": "EvaluateSinglePrivateFieldClassNoOpt"},
{"name": "EvaluateMultiPrivateFieldClassNoOpt"}, {"name": "EvaluateMultiPrivateFieldClassNoOpt"},
{"name": "EvaluateSinglePrivateMethodClassNoOpt"},
{"name": "EvaluateMultiPrivateMethodClassNoOpt"},
{"name": "EvaluateSingleComputedFieldClassNoOpt"}, {"name": "EvaluateSingleComputedFieldClassNoOpt"},
{"name": "EvaluateMultiComputedFieldClassNoOpt"} {"name": "EvaluateMultiComputedFieldClassNoOpt"}
] ]
...@@ -55,6 +59,8 @@ ...@@ -55,6 +59,8 @@
{"name": "InitializeMultiPublicFieldClassOpt"}, {"name": "InitializeMultiPublicFieldClassOpt"},
{"name": "InitializeSinglePrivateFieldClassOpt"}, {"name": "InitializeSinglePrivateFieldClassOpt"},
{"name": "InitializeMultiPrivateFieldClassOpt"}, {"name": "InitializeMultiPrivateFieldClassOpt"},
{"name": "InitializeSinglePrivateMethodClassOpt"},
{"name": "InitializeMultiPrivateMethodClassOpt"},
{"name": "InitializeSingleComputedFieldClassOpt"}, {"name": "InitializeSingleComputedFieldClassOpt"},
{"name": "InitializeMultiComputedFieldClassOpt"} {"name": "InitializeMultiComputedFieldClassOpt"}
] ]
...@@ -71,6 +77,8 @@ ...@@ -71,6 +77,8 @@
{"name": "InitializeMultiPublicFieldClassNoOpt"}, {"name": "InitializeMultiPublicFieldClassNoOpt"},
{"name": "InitializeSinglePrivateFieldClassNoOpt"}, {"name": "InitializeSinglePrivateFieldClassNoOpt"},
{"name": "InitializeMultiPrivateFieldClassNoOpt"}, {"name": "InitializeMultiPrivateFieldClassNoOpt"},
{"name": "InitializeSinglePrivateMethodClassNoOpt"},
{"name": "InitializeMultiPrivateMethodClassNoOpt"},
{"name": "InitializeSingleComputedFieldClassNoOpt"}, {"name": "InitializeSingleComputedFieldClassNoOpt"},
{"name": "InitializeMultiComputedFieldClassNoOpt"} {"name": "InitializeMultiComputedFieldClassNoOpt"}
] ]
......
...@@ -58,6 +58,33 @@ function EvaluateMultiPrivateFieldClass() { ...@@ -58,6 +58,33 @@ function EvaluateMultiPrivateFieldClass() {
}; };
} }
function EvaluateSinglePrivateMethodClass() {
return class PrivateSingleMethodClass {
#x() { return 0; }
check() {
return this.#x() === 0;
}
};
}
function EvaluateMultiPrivateMethodClass() {
return class PrivateMultiMethodClass {
#x() { return 0; }
#y() { return 1; }
#z() { return 2; }
#q() { return 3; }
#r() { return 4; }
#a() { return 5; }
check() {
return this.#x() + 1 === this.#y() && this.#y() + 1 === this.#z() &&
this.#z() + 1 === this.#q() && this.#q() + 1 === this.#r() &&
this.#r() + 1 === this.#a();
}
};
}
function key(i) { function key(i) {
return 'abcdefghijklmnopqrstuvwxyz'[i]; return 'abcdefghijklmnopqrstuvwxyz'[i];
} }
......
...@@ -22,6 +22,12 @@ function CreateBenchmark(name, optimize) { ...@@ -22,6 +22,12 @@ function CreateBenchmark(name, optimize) {
case "EvaluateMultiPrivateFieldClass": case "EvaluateMultiPrivateFieldClass":
factory = EvaluateMultiPrivateFieldClass; factory = EvaluateMultiPrivateFieldClass;
break; break;
case "EvaluateSinglePrivateMethodClass":
factory = EvaluateSinglePrivateMethodClass;
break;
case "EvaluateMultiPrivateMethodClass":
factory = EvaluateMultiPrivateMethodClass;
break;
case "EvaluateSingleComputedFieldClass": case "EvaluateSingleComputedFieldClass":
factory = EvaluateSingleComputedFieldClass; factory = EvaluateSingleComputedFieldClass;
break; break;
...@@ -95,5 +101,7 @@ CreateBenchmark("EvaluateSinglePublicFieldClass", optimize); ...@@ -95,5 +101,7 @@ CreateBenchmark("EvaluateSinglePublicFieldClass", optimize);
CreateBenchmark("EvaluateMultiPublicFieldClass", optimize); CreateBenchmark("EvaluateMultiPublicFieldClass", optimize);
CreateBenchmark("EvaluateSinglePrivateFieldClass", optimize); CreateBenchmark("EvaluateSinglePrivateFieldClass", optimize);
CreateBenchmark("EvaluateMultiPrivateFieldClass", optimize); CreateBenchmark("EvaluateMultiPrivateFieldClass", optimize);
CreateBenchmark("EvaluateSinglePrivateMethodClass", optimize);
CreateBenchmark("EvaluateMultiPrivateMethodClass", optimize);
CreateBenchmark("EvaluateSingleComputedFieldClass", optimize); CreateBenchmark("EvaluateSingleComputedFieldClass", optimize);
CreateBenchmark("EvaluateMultiComputedFieldClass", optimize); CreateBenchmark("EvaluateMultiComputedFieldClass", optimize);
...@@ -22,6 +22,12 @@ function CreateBenchmark(name, optimize) { ...@@ -22,6 +22,12 @@ function CreateBenchmark(name, optimize) {
case "InitializeMultiPrivateFieldClass": case "InitializeMultiPrivateFieldClass":
klass = EvaluateMultiPrivateFieldClass(); klass = EvaluateMultiPrivateFieldClass();
break; break;
case "InitializeSinglePrivateMethodClass":
klass = EvaluateSinglePrivateMethodClass();
break;
case "InitializeMultiPrivateMethodClass":
klass = EvaluateMultiPrivateMethodClass();
break;
case "InitializeSingleComputedFieldClass": case "InitializeSingleComputedFieldClass":
klass = EvaluateSingleComputedFieldClass(); klass = EvaluateSingleComputedFieldClass();
break; break;
...@@ -94,5 +100,7 @@ CreateBenchmark("InitializeSinglePublicFieldClass", optimize); ...@@ -94,5 +100,7 @@ CreateBenchmark("InitializeSinglePublicFieldClass", optimize);
CreateBenchmark("InitializeMultiPublicFieldClass", optimize); CreateBenchmark("InitializeMultiPublicFieldClass", optimize);
CreateBenchmark("InitializeSinglePrivateFieldClass", optimize); CreateBenchmark("InitializeSinglePrivateFieldClass", optimize);
CreateBenchmark("InitializeMultiPrivateFieldClass", optimize); CreateBenchmark("InitializeMultiPrivateFieldClass", optimize);
CreateBenchmark("InitializeSinglePrivateMethodClass", optimize);
CreateBenchmark("InitializeMultiPrivateMethodClass", optimize);
CreateBenchmark("InitializeSingleComputedFieldClass", optimize); CreateBenchmark("InitializeSingleComputedFieldClass", optimize);
CreateBenchmark("InitializeMultiComputedFieldClass", optimize); CreateBenchmark("InitializeMultiComputedFieldClass", optimize);
...@@ -26,6 +26,8 @@ ...@@ -26,6 +26,8 @@
{"name": "EvaluateMultiPublicFieldClassOpt"}, {"name": "EvaluateMultiPublicFieldClassOpt"},
{"name": "EvaluateSinglePrivateFieldClassOpt"}, {"name": "EvaluateSinglePrivateFieldClassOpt"},
{"name": "EvaluateMultiPrivateFieldClassOpt"}, {"name": "EvaluateMultiPrivateFieldClassOpt"},
{"name": "EvaluateSinglePrivateMethodClassOpt"},
{"name": "EvaluateMultiPrivateMethodClassOpt"},
{"name": "EvaluateSingleComputedFieldClassOpt"}, {"name": "EvaluateSingleComputedFieldClassOpt"},
{"name": "EvaluateMultiComputedFieldClassOpt"} {"name": "EvaluateMultiComputedFieldClassOpt"}
] ]
...@@ -40,6 +42,8 @@ ...@@ -40,6 +42,8 @@
{"name": "EvaluateMultiPublicFieldClassNoOpt"}, {"name": "EvaluateMultiPublicFieldClassNoOpt"},
{"name": "EvaluateSinglePrivateFieldClassNoOpt"}, {"name": "EvaluateSinglePrivateFieldClassNoOpt"},
{"name": "EvaluateMultiPrivateFieldClassNoOpt"}, {"name": "EvaluateMultiPrivateFieldClassNoOpt"},
{"name": "EvaluateSinglePrivateMethodClassNoOpt"},
{"name": "EvaluateMultiPrivateMethodClassNoOpt"},
{"name": "EvaluateSingleComputedFieldClassNoOpt"}, {"name": "EvaluateSingleComputedFieldClassNoOpt"},
{"name": "EvaluateMultiComputedFieldClassNoOpt"} {"name": "EvaluateMultiComputedFieldClassNoOpt"}
] ]
...@@ -54,6 +58,8 @@ ...@@ -54,6 +58,8 @@
{"name": "InitializeMultiPublicFieldClassOpt"}, {"name": "InitializeMultiPublicFieldClassOpt"},
{"name": "InitializeSinglePrivateFieldClassOpt"}, {"name": "InitializeSinglePrivateFieldClassOpt"},
{"name": "InitializeMultiPrivateFieldClassOpt"}, {"name": "InitializeMultiPrivateFieldClassOpt"},
{"name": "InitializeSinglePrivateMethodClassOpt"},
{"name": "InitializeMultiPrivateMethodClassOpt"},
{"name": "InitializeSingleComputedFieldClassOpt"}, {"name": "InitializeSingleComputedFieldClassOpt"},
{"name": "InitializeMultiComputedFieldClassOpt"} {"name": "InitializeMultiComputedFieldClassOpt"}
] ]
...@@ -68,6 +74,8 @@ ...@@ -68,6 +74,8 @@
{"name": "InitializeMultiPublicFieldClassNoOpt"}, {"name": "InitializeMultiPublicFieldClassNoOpt"},
{"name": "InitializeSinglePrivateFieldClassNoOpt"}, {"name": "InitializeSinglePrivateFieldClassNoOpt"},
{"name": "InitializeMultiPrivateFieldClassNoOpt"}, {"name": "InitializeMultiPrivateFieldClassNoOpt"},
{"name": "InitializeSinglePrivateMethodClassNoOpt"},
{"name": "InitializeMultiPrivateMethodClassNoOpt"},
{"name": "InitializeSingleComputedFieldClassNoOpt"}, {"name": "InitializeSingleComputedFieldClassNoOpt"},
{"name": "InitializeMultiComputedFieldClassNoOpt"} {"name": "InitializeMultiComputedFieldClassNoOpt"}
] ]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment