Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(230)

Unified Diff: src/interpreter/bytecode-array-builder.cc

Issue 2122183002: [Interpreter] Collect type feedback for calls in the bytecode handler (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: fixed few comments. Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/interpreter/bytecode-array-builder.cc
diff --git a/src/interpreter/bytecode-array-builder.cc b/src/interpreter/bytecode-array-builder.cc
index 8dc4fb98985bddb9e5328b622f7ab808ef3789b1..4e87ba27e378486daa0807a6d847dd57ef366f03 100644
--- a/src/interpreter/bytecode-array-builder.cc
+++ b/src/interpreter/bytecode-array-builder.cc
@@ -555,14 +555,22 @@ void BytecodeArrayBuilder::EnsureReturn() {
DCHECK(return_seen_in_block_);
}
+BytecodeArrayBuilder& BytecodeArrayBuilder::CallWithFeedback(
+ Register callable, Register receiver_args, size_t receiver_args_count,
+ int feedback_slot, TailCallMode tail_call_mode) {
+ Bytecode bytecode = BytecodeForCallWithFeedback(tail_call_mode);
+ Output(bytecode, RegisterOperand(callable), RegisterOperand(receiver_args),
+ UnsignedOperand(receiver_args_count), UnsignedOperand(feedback_slot));
+ return *this;
+}
+
BytecodeArrayBuilder& BytecodeArrayBuilder::Call(Register callable,
Register receiver_args,
size_t receiver_args_count,
- int feedback_slot,
TailCallMode tail_call_mode) {
Bytecode bytecode = BytecodeForCall(tail_call_mode);
Output(bytecode, RegisterOperand(callable), RegisterOperand(receiver_args),
- UnsignedOperand(receiver_args_count), UnsignedOperand(feedback_slot));
+ UnsignedOperand(receiver_args_count));
return *this;
}
@@ -935,6 +943,20 @@ Bytecode BytecodeArrayBuilder::BytecodeForCall(TailCallMode tail_call_mode) {
return Bytecode::kIllegal;
}
+// static
+Bytecode BytecodeArrayBuilder::BytecodeForCallWithFeedback(
+ TailCallMode tail_call_mode) {
+ switch (tail_call_mode) {
+ case TailCallMode::kDisallow:
+ return Bytecode::kCallWithFeedback;
+ case TailCallMode::kAllow:
+ return Bytecode::kTailCallWithFeedback;
+ default:
+ UNREACHABLE();
+ }
+ return Bytecode::kIllegal;
+}
+
} // namespace interpreter
} // namespace internal
} // namespace v8

Powered by Google App Engine
This is Rietveld 408576698