summaryrefslogtreecommitdiff
path: root/compiler/optimizing/graph_visualizer.cc
diff options
context:
space:
mode:
authorDavid Brazdil <dbrazdil@google.com>2014-12-30 10:36:02 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2014-12-30 10:36:03 +0000
commit42177ceb495ef591cd74e3f45ccf6f49dea03fea (patch)
treec653989bc79dd21328ab7e59803bdeb1d55282e7 /compiler/optimizing/graph_visualizer.cc
parentb31aa2519af31b9e88677922468ee4f6da63d19c (diff)
parentb7e4a069ae51a86152faacdc39298fe78f33a66e (diff)
Merge "ART: Refactored VisualizerPrinter visitor pattern"
Diffstat (limited to 'compiler/optimizing/graph_visualizer.cc')
-rw-r--r--compiler/optimizing/graph_visualizer.cc35
1 files changed, 21 insertions, 14 deletions
diff --git a/compiler/optimizing/graph_visualizer.cc b/compiler/optimizing/graph_visualizer.cc
index b14b0a70e2..9ed1e4528c 100644
--- a/compiler/optimizing/graph_visualizer.cc
+++ b/compiler/optimizing/graph_visualizer.cc
@@ -142,8 +142,7 @@ class HGraphVisualizerPrinter : public HGraphVisitor {
}
}
- void VisitParallelMove(HParallelMove* instruction) {
- output_ << instruction->DebugName();
+ void VisitParallelMove(HParallelMove* instruction) OVERRIDE {
output_ << " (";
for (size_t i = 0, e = instruction->NumMoves(); i < e; ++i) {
MoveOperands* move = instruction->MoveOperandsAt(i);
@@ -158,8 +157,25 @@ class HGraphVisualizerPrinter : public HGraphVisitor {
output_ << " (liveness: " << instruction->GetLifetimePosition() << ")";
}
- void VisitInstruction(HInstruction* instruction) {
+ void VisitIntConstant(HIntConstant *instruction) OVERRIDE {
+ output_ << " " << instruction->GetValue();
+ }
+
+ void VisitLongConstant(HLongConstant *instruction) OVERRIDE {
+ output_ << " " << instruction->GetValue();
+ }
+
+ void VisitFloatConstant(HFloatConstant *instruction) OVERRIDE {
+ output_ << " " << instruction->GetValue();
+ }
+
+ void VisitDoubleConstant(HDoubleConstant *instruction) OVERRIDE {
+ output_ << " " << instruction->GetValue();
+ }
+
+ void PrintInstruction(HInstruction* instruction) {
output_ << instruction->DebugName();
+ instruction->Accept(this);
if (instruction->InputCount() > 0) {
output_ << " [ ";
for (HInputIterator inputs(instruction); !inputs.Done(); inputs.Advance()) {
@@ -167,15 +183,6 @@ class HGraphVisualizerPrinter : public HGraphVisitor {
}
output_ << "]";
}
- if (instruction->IsIntConstant()) {
- output_ << " " << instruction->AsIntConstant()->GetValue();
- } else if (instruction->IsLongConstant()) {
- output_ << " " << instruction->AsLongConstant()->GetValue();
- } else if (instruction->IsFloatConstant()) {
- output_ << " " << instruction->AsFloatConstant()->GetValue();
- } else if (instruction->IsDoubleConstant()) {
- output_ << " " << instruction->AsDoubleConstant()->GetValue();
- }
if (pass_name_ == kLivenessPassName && instruction->GetLifetimePosition() != kNoLifetime) {
output_ << " (liveness: " << instruction->GetLifetimePosition();
if (instruction->HasLiveInterval()) {
@@ -210,7 +217,7 @@ class HGraphVisualizerPrinter : public HGraphVisitor {
int bci = 0;
output_ << bci << " " << instruction->NumberOfUses()
<< " " << GetTypeId(instruction->GetType()) << instruction->GetId() << " ";
- instruction->Accept(this);
+ PrintInstruction(instruction);
output_ << kEndInstructionMarker << std::endl;
}
}
@@ -222,7 +229,7 @@ class HGraphVisualizerPrinter : public HGraphVisitor {
EndTag("cfg");
}
- void VisitBasicBlock(HBasicBlock* block) {
+ void VisitBasicBlock(HBasicBlock* block) OVERRIDE {
StartTag("block");
PrintProperty("name", "B", block->GetBlockId());
if (block->GetLifetimeStart() != kNoLifetime) {