Index: src/compiler/ast-graph-builder.cc |
diff --git a/src/compiler/ast-graph-builder.cc b/src/compiler/ast-graph-builder.cc |
index fda3c7ad44cb90803a44c5faf3ef55711ec3316f..56b1f8c2d2852ebdf23f268784bc650091b2a7e7 100644 |
--- a/src/compiler/ast-graph-builder.cc |
+++ b/src/compiler/ast-graph-builder.cc |
@@ -411,14 +411,15 @@ class AstGraphBuilder::ControlScopeForFinally : public ControlScope { |
TryFinallyBuilder* control_; |
}; |
- |
AstGraphBuilder::AstGraphBuilder(Zone* local_zone, CompilationInfo* info, |
- JSGraph* jsgraph, LoopAssignmentAnalysis* loop, |
+ JSGraph* jsgraph, float invocation_frequency, |
+ LoopAssignmentAnalysis* loop, |
TypeHintAnalysis* type_hint_analysis) |
: isolate_(info->isolate()), |
local_zone_(local_zone), |
info_(info), |
jsgraph_(jsgraph), |
+ invocation_frequency_(invocation_frequency), |
environment_(nullptr), |
ast_context_(nullptr), |
globals_(0, local_zone), |
@@ -3104,7 +3105,10 @@ float AstGraphBuilder::ComputeCallFrequency(FeedbackVectorSlot slot) const { |
Handle<TypeFeedbackVector> feedback_vector( |
info()->closure()->feedback_vector(), isolate()); |
CallICNexus nexus(feedback_vector, slot); |
- return nexus.ExtractCallCount(); |
+ double const invocation_count = feedback_vector->invocation_count(); |
+ double const call_count = nexus.ExtractCallCount(); |
+ return static_cast<float>(call_count / invocation_count) * |
+ invocation_frequency_; |
mvstanton
2016/09/14 09:26:09
How about giving the CallICNexus responsibility fo
Benedikt Meurer
2016/09/14 10:55:44
Done.
|
} |
Node* AstGraphBuilder::ProcessArguments(const Operator* op, int arity) { |