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

Unified Diff: src/interpreter/interpreter-assembler.cc

Issue 2426693002: [ic] Unify CallIC feedback collection and handling. (Closed)
Patch Set: Also simplify BytecodeGraphBuilder::ComputeCallFrequency Created 4 years, 2 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/interpreter-assembler.cc
diff --git a/src/interpreter/interpreter-assembler.cc b/src/interpreter/interpreter-assembler.cc
index b945b91379afa3867e11acd5b7468ebf5df303de..a9f6d574cd6d7aeef8d2042d84b33edd629269b6 100644
--- a/src/interpreter/interpreter-assembler.cc
+++ b/src/interpreter/interpreter-assembler.cc
@@ -567,13 +567,7 @@ Node* InterpreterAssembler::CallJSWithFeedback(Node* function, Node* context,
Variable return_value(this, MachineRepresentation::kTagged);
Label handle_monomorphic(this), extra_checks(this), end(this), call(this),
- call_function(this), call_without_feedback(this);
-
- // Slot id of 0 is used to indicate no typefeedback is available. Call using
- // call builtin.
- STATIC_ASSERT(TypeFeedbackVector::kReservedIndexCount > 0);
- Node* is_feedback_unavailable = Word32Equal(slot_id, Int32Constant(0));
- GotoIf(is_feedback_unavailable, &call_without_feedback);
+ call_function(this);
// The checks. First, does function match the recorded monomorphic target?
Node* feedback_element = LoadFixedArrayElement(type_feedback_vector, slot_id);
@@ -733,18 +727,6 @@ Node* InterpreterAssembler::CallJSWithFeedback(Node* function, Node* context,
Goto(&end);
}
- Bind(&call_without_feedback);
- {
- // Call using call builtin.
- Callable callable_call = CodeFactory::InterpreterPushArgsAndCall(
- isolate(), tail_call_mode, CallableType::kAny);
- Node* code_target_call = HeapConstant(callable_call.code());
- Node* ret_value = CallStub(callable_call.descriptor(), code_target_call,
- context, arg_count, first_arg, function);
- return_value.Bind(ret_value);
- Goto(&end);
- }
-
Bind(&end);
return return_value.value();
}
« no previous file with comments | « src/interpreter/bytecode-generator.cc ('k') | test/cctest/interpreter/bytecode_expectations/CallLookupSlot.golden » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698