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

Unified Diff: src/profile-generator.h

Issue 941973002: CpuProfiler: eliminate cpu-profiler dependency from heap-inl.h (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: comments addressed 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 f7176a053a2a0c962cef8174ca0ee0522a3c1b96..9b4de6fe1a2a1ebbc8b4651ebae455bde4320e43 100644
--- a/src/profile-generator.h
+++ b/src/profile-generator.h
@@ -84,9 +84,10 @@ class CodeEntry {
int line_number() const { return line_number_; }
int column_number() const { return column_number_; }
const JITLineInfoTable* line_info() const { return line_info_; }
- void set_shared_id(int shared_id) { shared_id_ = shared_id; }
int script_id() const { return script_id_; }
void set_script_id(int script_id) { script_id_ = script_id; }
+ int position() const { return position_; }
+ void set_position(int position) { position_ = position; }
void set_bailout_reason(const char* bailout_reason) {
bailout_reason_ = bailout_reason;
}
@@ -105,6 +106,8 @@ class CodeEntry {
deopt_location_ = 0;
}
+ void FillFunctionInfo(SharedFunctionInfo* shared);
+
static inline bool is_js_function_tag(Logger::LogEventsAndTags tag);
List<OffsetRange>* no_frame_ranges() const { return no_frame_ranges_; }
@@ -117,8 +120,8 @@ class CodeEntry {
return BuiltinIdField::decode(bit_field_);
}
- uint32_t GetCallUid() const;
- bool IsSameAs(CodeEntry* entry) const;
+ uint32_t GetHash() const;
+ bool IsSameFunctionAs(CodeEntry* entry) const;
int GetSourceLine(int pc_offset) const;
@@ -140,8 +143,8 @@ class CodeEntry {
const char* resource_name_;
int line_number_;
int column_number_;
- int shared_id_;
int script_id_;
+ int position_;
List<OffsetRange>* no_frame_ranges_;
const char* bailout_reason_;
const char* deopt_reason_;
@@ -180,6 +183,7 @@ class ProfileNode {
unsigned self_ticks() const { return self_ticks_; }
const List<ProfileNode*>* children() const { return &children_list_; }
unsigned id() const { return id_; }
+ unsigned function_id() const;
unsigned int GetHitLineCount() const { return line_ticks_.occupancy(); }
bool GetLineTicks(v8::CpuProfileNode::LineTick* entries,
unsigned int length) const;
@@ -188,15 +192,13 @@ class ProfileNode {
void Print(int indent);
- private:
static bool CodeEntriesMatch(void* entry1, void* entry2) {
- return reinterpret_cast<CodeEntry*>(entry1)->IsSameAs(
- reinterpret_cast<CodeEntry*>(entry2));
+ return reinterpret_cast<CodeEntry*>(entry1)
+ ->IsSameFunctionAs(reinterpret_cast<CodeEntry*>(entry2));
}
- static uint32_t CodeEntryHash(CodeEntry* entry) {
- return entry->GetCallUid();
- }
+ private:
+ static uint32_t CodeEntryHash(CodeEntry* entry) { return entry->GetHash(); }
static bool LineTickMatch(void* a, void* b) { return a == b; }
@@ -224,6 +226,7 @@ class ProfileTree {
int src_line = v8::CpuProfileNode::kNoLineNumberInfo);
ProfileNode* root() const { return root_; }
unsigned next_node_id() { return next_node_id_++; }
+ unsigned GetFunctionId(const ProfileNode* node);
void Print() {
root_->Print(0);
@@ -237,6 +240,9 @@ class ProfileTree {
unsigned next_node_id_;
ProfileNode* root_;
+ unsigned next_function_id_;
+ HashMap function_ids_;
+
DISALLOW_COPY_AND_ASSIGN(ProfileTree);
};
@@ -281,7 +287,7 @@ class CpuProfile {
class CodeMap {
public:
- CodeMap() : next_shared_id_(1) { }
+ CodeMap() {}
void AddCode(Address addr, CodeEntry* entry, unsigned size);
void MoveCode(Address from, Address to);
CodeEntry* FindEntry(Address addr, Address* start = NULL);
@@ -315,11 +321,7 @@ class CodeMap {
void DeleteAllCoveredCode(Address start, Address end);
- // Fake CodeEntry pointer to distinguish shared function entries.
- static CodeEntry* const kSharedFunctionCodeEntry;
-
CodeTree tree_;
- int next_shared_id_;
DISALLOW_COPY_AND_ASSIGN(CodeMap);
};
« 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