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

Unified Diff: runtime/vm/object.cc

Issue 10831261: Build and use stack maps in the SSA compiler. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 4 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
Index: runtime/vm/object.cc
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index 667892ab5d98e4904b9622e5715069e33d400ae0..1281863012fa2e5ba3365fd64edf7b1c5c61eb81 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -9,17 +9,17 @@
#include "vm/assembler.h"
#include "vm/bigint_operations.h"
#include "vm/bootstrap.h"
-#include "vm/datastream.h"
-#include "vm/deopt_instructions.h"
+#include "vm/class_finalizer.h"
#include "vm/code_generator.h"
#include "vm/code_patcher.h"
#include "vm/compiler.h"
#include "vm/compiler_stats.h"
-#include "vm/class_finalizer.h"
#include "vm/dart.h"
#include "vm/dart_api_state.h"
#include "vm/dart_entry.h"
+#include "vm/datastream.h"
#include "vm/debuginfo.h"
+#include "vm/deopt_instructions.h"
#include "vm/double_conversion.h"
#include "vm/exceptions.h"
#include "vm/growable_array.h"
@@ -6558,12 +6558,21 @@ const char* PcDescriptors::KindAsStr(intptr_t index) const {
}
+void PcDescriptors::PrintHeaderString() {
+ // 4 bits per hex digit + 2 for "0x".
+ const int addr_width = (kBitsPerWord / 4) + 2;
+ OS::Print("%-*s\tkind \ttid\ttok-ix\ttry/deopt-ix\n", addr_width, "pc");
+}
+
+
const char* PcDescriptors::ToCString() const {
if (Length() == 0) {
return "No pc descriptors\n";
}
+ // 4 bits per hex digit.
+ const int addr_width = kBitsPerWord / 4;
const char* kFormat =
- "0x%" PRIxPTR "\t%s\t%" PRIdPTR "\t%" PRIdPTR "\t%" PRIdPTR "\n";
+ "0x%-*" PRIxPTR "\t%s\t%" PRIdPTR "\t%" PRIdPTR "\t%" PRIdPTR "\n";
Vyacheslav Egorov (Google) 2012/08/13 12:54:46 please add a comment about * consider making a de
Kevin Millikin (Google) 2012/08/13 15:10:37 Blah. I'd rather use vanilla printf specifiers th
// First compute the buffer size required.
intptr_t len = 1; // Trailing '\0'.
for (intptr_t i = 0; i < Length(); i++) {
@@ -6571,7 +6580,7 @@ const char* PcDescriptors::ToCString() const {
DeoptReason(i) : TokenPos(i);
intptr_t multi_purpose_index = DescriptorKind(i) == kDeoptIndex ?
DeoptIndex(i) : TryIndex(i);
- len += OS::SNPrint(NULL, 0, kFormat,
+ len += OS::SNPrint(NULL, 0, kFormat, addr_width,
PC(i),
KindAsStr(i),
DeoptId(i),
@@ -6587,7 +6596,7 @@ const char* PcDescriptors::ToCString() const {
DeoptReason(i) : TokenPos(i);
intptr_t multi_purpose_index = DescriptorKind(i) == kDeoptIndex ?
DeoptIndex(i) : TryIndex(i);
- index += OS::SNPrint((buffer + index), (len - index), kFormat,
+ index += OS::SNPrint((buffer + index), (len - index), kFormat, addr_width,
PC(i),
KindAsStr(i),
DeoptId(i),
@@ -7037,6 +7046,7 @@ RawCode* Code::New(intptr_t pointer_offsets_length) {
result ^= raw;
result.set_pointer_offsets_length(pointer_offsets_length);
result.set_is_optimized(false);
+ result.set_spill_slot_count(0);
result.set_comments(Comments::New(0));
}
return result.raw();

Powered by Google App Engine
This is Rietveld 408576698