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

Side by Side Diff: src/api.cc

Issue 2296243002: [RuntimeCallStats] Move tracing runtime instrumentation closer to the original version. (Closed)
Patch Set: Rebase Created 4 years, 3 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 | « no previous file | src/api-arguments.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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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/api.h" 5 #include "src/api.h"
6 6
7 #include <string.h> // For memcpy, strlen. 7 #include <string.h> // For memcpy, strlen.
8 #ifdef V8_USE_ADDRESS_SANITIZER 8 #ifdef V8_USE_ADDRESS_SANITIZER
9 #include <sanitizer/asan_interface.h> 9 #include <sanitizer/asan_interface.h>
10 #endif // V8_USE_ADDRESS_SANITIZER 10 #endif // V8_USE_ADDRESS_SANITIZER
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 #include "src/value-serializer.h" 72 #include "src/value-serializer.h"
73 #include "src/version.h" 73 #include "src/version.h"
74 #include "src/vm-state-inl.h" 74 #include "src/vm-state-inl.h"
75 #include "src/wasm/wasm-module.h" 75 #include "src/wasm/wasm-module.h"
76 76
77 namespace v8 { 77 namespace v8 {
78 78
79 #define LOG_API(isolate, class_name, function_name) \ 79 #define LOG_API(isolate, class_name, function_name) \
80 i::RuntimeCallTimerScope _runtime_timer( \ 80 i::RuntimeCallTimerScope _runtime_timer( \
81 isolate, &i::RuntimeCallStats::API_##class_name##_##function_name); \ 81 isolate, &i::RuntimeCallStats::API_##class_name##_##function_name); \
82 TRACE_EVENT_RUNTIME_CALL_STATS_TRACING_SCOPED( \
83 isolate, &internal::tracing::TraceEventStatsTable:: \
84 API_##class_name##_##function_name); \
85 LOG(isolate, ApiEntryCall("v8::" #class_name "::" #function_name)) 82 LOG(isolate, ApiEntryCall("v8::" #class_name "::" #function_name))
86 83
87 #define ENTER_V8(isolate) i::VMState<v8::OTHER> __state__((isolate)) 84 #define ENTER_V8(isolate) i::VMState<v8::OTHER> __state__((isolate))
88 85
89 #define PREPARE_FOR_EXECUTION_GENERIC(isolate, context, class_name, \ 86 #define PREPARE_FOR_EXECUTION_GENERIC(isolate, context, class_name, \
90 function_name, bailout_value, \ 87 function_name, bailout_value, \
91 HandleScopeClass, do_callback) \ 88 HandleScopeClass, do_callback) \
92 if (IsExecutionTerminatingCheck(isolate)) { \ 89 if (IsExecutionTerminatingCheck(isolate)) { \
93 return bailout_value; \ 90 return bailout_value; \
94 } \ 91 } \
(...skipping 9085 matching lines...) Expand 10 before | Expand all | Expand 10 after
9180 9177
9181 9178
9182 void InvokeAccessorGetterCallback( 9179 void InvokeAccessorGetterCallback(
9183 v8::Local<v8::Name> property, 9180 v8::Local<v8::Name> property,
9184 const v8::PropertyCallbackInfo<v8::Value>& info, 9181 const v8::PropertyCallbackInfo<v8::Value>& info,
9185 v8::AccessorNameGetterCallback getter) { 9182 v8::AccessorNameGetterCallback getter) {
9186 // Leaving JavaScript. 9183 // Leaving JavaScript.
9187 Isolate* isolate = reinterpret_cast<Isolate*>(info.GetIsolate()); 9184 Isolate* isolate = reinterpret_cast<Isolate*>(info.GetIsolate());
9188 RuntimeCallTimerScope timer(isolate, 9185 RuntimeCallTimerScope timer(isolate,
9189 &RuntimeCallStats::AccessorGetterCallback); 9186 &RuntimeCallStats::AccessorGetterCallback);
9190 TRACE_EVENT_RUNTIME_CALL_STATS_TRACING_SCOPED(
9191 isolate,
9192 &internal::tracing::TraceEventStatsTable::AccessorGetterCallback);
9193 Address getter_address = reinterpret_cast<Address>(reinterpret_cast<intptr_t>( 9187 Address getter_address = reinterpret_cast<Address>(reinterpret_cast<intptr_t>(
9194 getter)); 9188 getter));
9195 VMState<EXTERNAL> state(isolate); 9189 VMState<EXTERNAL> state(isolate);
9196 ExternalCallbackScope call_scope(isolate, getter_address); 9190 ExternalCallbackScope call_scope(isolate, getter_address);
9197 getter(property, info); 9191 getter(property, info);
9198 } 9192 }
9199 9193
9200 9194
9201 void InvokeFunctionCallback(const v8::FunctionCallbackInfo<v8::Value>& info, 9195 void InvokeFunctionCallback(const v8::FunctionCallbackInfo<v8::Value>& info,
9202 v8::FunctionCallback callback) { 9196 v8::FunctionCallback callback) {
9203 Isolate* isolate = reinterpret_cast<Isolate*>(info.GetIsolate()); 9197 Isolate* isolate = reinterpret_cast<Isolate*>(info.GetIsolate());
9204 RuntimeCallTimerScope timer(isolate, 9198 RuntimeCallTimerScope timer(isolate,
9205 &RuntimeCallStats::InvokeFunctionCallback); 9199 &RuntimeCallStats::InvokeFunctionCallback);
9206 TRACE_EVENT_RUNTIME_CALL_STATS_TRACING_SCOPED(
9207 isolate,
9208 &internal::tracing::TraceEventStatsTable::InvokeFunctionCallback);
9209 Address callback_address = 9200 Address callback_address =
9210 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback)); 9201 reinterpret_cast<Address>(reinterpret_cast<intptr_t>(callback));
9211 VMState<EXTERNAL> state(isolate); 9202 VMState<EXTERNAL> state(isolate);
9212 ExternalCallbackScope call_scope(isolate, callback_address); 9203 ExternalCallbackScope call_scope(isolate, callback_address);
9213 callback(info); 9204 callback(info);
9214 } 9205 }
9215 9206
9216 9207
9217 } // namespace internal 9208 } // namespace internal
9218 } // namespace v8 9209 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | src/api-arguments.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698