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

Unified Diff: src/profile-generator.h

Issue 919953002: CPUProfiler: Push deopt reason further to ProfileNode. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: unnecessary changes were removed Created 5 years, 10 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/ppc/lithium-codegen-ppc.cc ('k') | src/profile-generator.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/profile-generator.h
diff --git a/src/profile-generator.h b/src/profile-generator.h
index 679e9298124f5d7e06cae14aac48d52cea38ddda..f7176a053a2a0c962cef8174ca0ee0522a3c1b96 100644
--- a/src/profile-generator.h
+++ b/src/profile-generator.h
@@ -90,11 +90,20 @@ class CodeEntry {
void set_bailout_reason(const char* bailout_reason) {
bailout_reason_ = bailout_reason;
}
- void set_deopt_reason(const char* deopt_reason) {
+ const char* bailout_reason() const { return bailout_reason_; }
+
+ void set_deopt_info(const char* deopt_reason, int location) {
+ DCHECK(!deopt_location_);
deopt_reason_ = deopt_reason;
+ deopt_location_ = location;
+ }
+ const char* deopt_reason() const { return deopt_reason_; }
+ int deopt_location() const { return deopt_location_; }
+ bool has_deopt_info() const { return deopt_location_; }
+ void clear_deopt_info() {
+ deopt_reason_ = kNoDeoptReason;
+ deopt_location_ = 0;
}
- void set_deopt_location(int location) { deopt_location_ = location; }
- const char* bailout_reason() const { return bailout_reason_; }
static inline bool is_js_function_tag(Logger::LogEventsAndTags tag);
@@ -118,6 +127,7 @@ class CodeEntry {
static const char* const kEmptyNamePrefix;
static const char* const kEmptyResourceName;
static const char* const kEmptyBailoutReason;
+ static const char* const kNoDeoptReason;
private:
class TagField : public BitField<Logger::LogEventsAndTags, 0, 8> {};
@@ -146,6 +156,17 @@ class CodeEntry {
class ProfileTree;
class ProfileNode {
+ private:
+ struct DeoptInfo {
+ DeoptInfo(const char* deopt_reason, int deopt_location)
+ : deopt_reason(deopt_reason), deopt_location(deopt_location) {}
+ DeoptInfo(const DeoptInfo& info)
+ : deopt_reason(info.deopt_reason),
+ deopt_location(info.deopt_location) {}
+ const char* deopt_reason;
+ int deopt_location;
+ };
+
public:
inline ProfileNode(ProfileTree* tree, CodeEntry* entry);
@@ -162,6 +183,8 @@ class ProfileNode {
unsigned int GetHitLineCount() const { return line_ticks_.occupancy(); }
bool GetLineTicks(v8::CpuProfileNode::LineTick* entries,
unsigned int length) const;
+ void CollectDeoptInfo(CodeEntry* entry);
+ const List<DeoptInfo>& deopt_infos() const { return deopt_infos_; }
void Print(int indent);
@@ -186,6 +209,7 @@ class ProfileNode {
unsigned id_;
HashMap line_ticks_;
+ List<DeoptInfo> deopt_infos_;
DISALLOW_COPY_AND_ASSIGN(ProfileNode);
};
« no previous file with comments | « src/ppc/lithium-codegen-ppc.cc ('k') | src/profile-generator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698