diff options
Diffstat (limited to 'compiler/optimizing/graph_visualizer.cc')
| -rw-r--r-- | compiler/optimizing/graph_visualizer.cc | 51 |
1 files changed, 20 insertions, 31 deletions
diff --git a/compiler/optimizing/graph_visualizer.cc b/compiler/optimizing/graph_visualizer.cc index 4ed2156241..b14b0a70e2 100644 --- a/compiler/optimizing/graph_visualizer.cc +++ b/compiler/optimizing/graph_visualizer.cc @@ -17,7 +17,6 @@ #include "graph_visualizer.h" #include "code_generator.h" -#include "driver/dex_compilation_unit.h" #include "nodes.h" #include "ssa_liveness_analysis.h" @@ -168,6 +167,15 @@ 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()) { @@ -270,49 +278,30 @@ HGraphVisualizer::HGraphVisualizer(std::ostream* output, HGraph* graph, const char* string_filter, const CodeGenerator& codegen, - const DexCompilationUnit& cu) - : output_(output), graph_(graph), codegen_(codegen), is_enabled_(false) { + const char* method_name) + : output_(output), graph_(graph), codegen_(codegen), is_enabled_(false) { if (output == nullptr) { return; } - std::string pretty_name = PrettyMethod(cu.GetDexMethodIndex(), *cu.GetDexFile()); - if (pretty_name.find(string_filter) == std::string::npos) { + if (strstr(method_name, string_filter) == nullptr) { return; } is_enabled_ = true; - HGraphVisualizerPrinter printer(graph, *output_, "", codegen_); + HGraphVisualizerPrinter printer(graph_, *output_, "", codegen_); printer.StartTag("compilation"); - printer.PrintProperty("name", pretty_name.c_str()); - printer.PrintProperty("method", pretty_name.c_str()); + printer.PrintProperty("name", method_name); + printer.PrintProperty("method", method_name); printer.PrintTime("date"); printer.EndTag("compilation"); } -HGraphVisualizer::HGraphVisualizer(std::ostream* output, - HGraph* graph, - const CodeGenerator& codegen, - const char* name) - : output_(output), graph_(graph), codegen_(codegen), is_enabled_(false) { - if (output == nullptr) { - return; - } - - is_enabled_ = true; - HGraphVisualizerPrinter printer(graph, *output_, "", codegen_); - printer.StartTag("compilation"); - printer.PrintProperty("name", name); - printer.PrintProperty("method", name); - printer.PrintTime("date"); - printer.EndTag("compilation"); -} - -void HGraphVisualizer::DumpGraph(const char* pass_name) const { - if (!is_enabled_) { - return; +void HGraphVisualizer::DumpGraph(const char* pass_name, bool is_after_pass) const { + if (is_enabled_) { + std::string pass_desc = std::string(pass_name) + (is_after_pass ? " (after)" : " (before)"); + HGraphVisualizerPrinter printer(graph_, *output_, pass_desc.c_str(), codegen_); + printer.Run(); } - HGraphVisualizerPrinter printer(graph_, *output_, pass_name, codegen_); - printer.Run(); } } // namespace art |
