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

Unified Diff: src/profiler/profile-generator.h

Issue 1973993002: [compiler] Profiler reconstructs inlined frames for deopts. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix build. Created 4 years, 7 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
« no previous file with comments | « src/profiler/cpu-profiler-inl.h ('k') | src/profiler/profile-generator.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/profiler/profile-generator.h
diff --git a/src/profiler/profile-generator.h b/src/profiler/profile-generator.h
index afa8ada5804316499a5043f5d83ec385a475e20b..5c017e1876fb6e62caa156875e9b1f7adab2d9fe 100644
--- a/src/profiler/profile-generator.h
+++ b/src/profiler/profile-generator.h
@@ -47,6 +47,13 @@ class CodeEntry {
Address instruction_start = NULL);
~CodeEntry();
+ // Container describing inlined frames at eager deopt points. Is eventually
+ // being translated into v8::CpuProfileDeoptFrame by the profiler.
+ struct DeoptInlinedFrame {
+ int position;
+ int script_id;
+ };
+
const char* name_prefix() const { return name_prefix_; }
bool has_name_prefix() const { return name_prefix_[0] != '\0'; }
const char* name() const { return name_; }
@@ -64,11 +71,11 @@ class CodeEntry {
const char* bailout_reason() const { return bailout_reason_; }
void set_deopt_info(const char* deopt_reason, SourcePosition position,
- int inlining_id) {
+ int deopt_id) {
DCHECK(deopt_position_.IsUnknown());
deopt_reason_ = deopt_reason;
deopt_position_ = position;
- deopt_inlining_id_ = inlining_id;
+ deopt_id_ = deopt_id;
}
CpuProfileDeoptInfo GetDeoptInfo();
const char* deopt_reason() const { return deopt_reason_; }
@@ -81,14 +88,6 @@ class CodeEntry {
void FillFunctionInfo(SharedFunctionInfo* shared);
- void set_inlined_function_infos(
- const std::vector<InlinedFunctionInfo>& infos) {
- inlined_function_infos_ = infos;
- }
- const std::vector<InlinedFunctionInfo> inlined_function_infos() {
- return inlined_function_infos_;
- }
-
void SetBuiltinId(Builtins::Name id);
Builtins::Name builtin_id() const {
return BuiltinIdField::decode(bit_field_);
@@ -102,6 +101,9 @@ class CodeEntry {
void AddInlineStack(int pc_offset, std::vector<CodeEntry*>& inline_stack);
const std::vector<CodeEntry*>* GetInlineStack(int pc_offset) const;
+ void AddDeoptInlinedFrames(int deopt_id, std::vector<DeoptInlinedFrame>&);
+ bool HasDeoptInlinedFramesFor(int deopt_id) const;
+
Address instruction_start() const { return instruction_start_; }
Logger::LogEventsAndTags tag() const { return TagField::decode(bit_field_); }
@@ -125,13 +127,12 @@ class CodeEntry {
const char* bailout_reason_;
const char* deopt_reason_;
SourcePosition deopt_position_;
- int deopt_inlining_id_;
+ int deopt_id_;
JITLineInfoTable* line_info_;
Address instruction_start_;
// Should be an unordered_map, but it doesn't currently work on Win & MacOS.
std::map<int, std::vector<CodeEntry*>> inline_locations_;
-
- std::vector<InlinedFunctionInfo> inlined_function_infos_;
+ std::map<int, std::vector<DeoptInlinedFrame>> deopt_inlined_frames_;
DISALLOW_COPY_AND_ASSIGN(CodeEntry);
};
« no previous file with comments | « src/profiler/cpu-profiler-inl.h ('k') | src/profiler/profile-generator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698