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

Side by Side Diff: src/compiler/bytecode-graph-builder.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 unified diff | Download patch
« no previous file with comments | « src/ast/ast.cc ('k') | src/crankshaft/hydrogen.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/compiler/bytecode-graph-builder.h" 5 #include "src/compiler/bytecode-graph-builder.h"
6 6
7 #include "src/ast/ast.h" 7 #include "src/ast/ast.h"
8 #include "src/ast/scopes.h" 8 #include "src/ast/scopes.h"
9 #include "src/compilation-info.h" 9 #include "src/compilation-info.h"
10 #include "src/compiler/bytecode-branch-analysis.h" 10 #include "src/compiler/bytecode-branch-analysis.h"
(...skipping 1509 matching lines...) Expand 10 before | Expand all | Expand 10 after
1520 } 1520 }
1521 FeedbackVectorSlot slot = 1521 FeedbackVectorSlot slot =
1522 feedback_vector()->ToSlot(bytecode_iterator().GetIndexOperand(1)); 1522 feedback_vector()->ToSlot(bytecode_iterator().GetIndexOperand(1));
1523 DCHECK_EQ(FeedbackVectorSlotKind::INTERPRETER_COMPARE_IC, 1523 DCHECK_EQ(FeedbackVectorSlotKind::INTERPRETER_COMPARE_IC,
1524 feedback_vector()->GetKind(slot)); 1524 feedback_vector()->GetKind(slot));
1525 CompareICNexus nexus(feedback_vector(), slot); 1525 CompareICNexus nexus(feedback_vector(), slot);
1526 return nexus.GetCompareOperationFeedback(); 1526 return nexus.GetCompareOperationFeedback();
1527 } 1527 }
1528 1528
1529 float BytecodeGraphBuilder::ComputeCallFrequency(int slot_id) const { 1529 float BytecodeGraphBuilder::ComputeCallFrequency(int slot_id) const {
1530 if (slot_id >= TypeFeedbackVector::kReservedIndexCount) { 1530 CallICNexus nexus(feedback_vector(), feedback_vector()->ToSlot(slot_id));
1531 CallICNexus nexus(feedback_vector(), feedback_vector()->ToSlot(slot_id)); 1531 return nexus.ComputeCallFrequency() * invocation_frequency_;
1532 return nexus.ComputeCallFrequency() * invocation_frequency_;
1533 }
1534 return 0.0f;
1535 } 1532 }
1536 1533
1537 void BytecodeGraphBuilder::VisitAdd() { 1534 void BytecodeGraphBuilder::VisitAdd() {
1538 BuildBinaryOp( 1535 BuildBinaryOp(
1539 javascript()->Add(GetBinaryOperationHint(kBinaryOperationHintIndex))); 1536 javascript()->Add(GetBinaryOperationHint(kBinaryOperationHintIndex)));
1540 } 1537 }
1541 1538
1542 void BytecodeGraphBuilder::VisitSub() { 1539 void BytecodeGraphBuilder::VisitSub() {
1543 BuildBinaryOp(javascript()->Subtract( 1540 BuildBinaryOp(javascript()->Subtract(
1544 GetBinaryOperationHint(kBinaryOperationHintIndex))); 1541 GetBinaryOperationHint(kBinaryOperationHintIndex)));
(...skipping 736 matching lines...) Expand 10 before | Expand all | Expand 10 after
2281 source_positions_->set_current_position(it->source_position()); 2278 source_positions_->set_current_position(it->source_position());
2282 it->Advance(); 2279 it->Advance();
2283 } else { 2280 } else {
2284 DCHECK_GT(it->code_offset(), offset); 2281 DCHECK_GT(it->code_offset(), offset);
2285 } 2282 }
2286 } 2283 }
2287 2284
2288 } // namespace compiler 2285 } // namespace compiler
2289 } // namespace internal 2286 } // namespace internal
2290 } // namespace v8 2287 } // namespace v8
OLDNEW
« no previous file with comments | « src/ast/ast.cc ('k') | src/crankshaft/hydrogen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698