diff options
Diffstat (limited to 'compiler/optimizing/graph_visualizer.cc')
-rw-r--r-- | compiler/optimizing/graph_visualizer.cc | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/compiler/optimizing/graph_visualizer.cc b/compiler/optimizing/graph_visualizer.cc index d94c1fa2fb..d5840fc7cf 100644 --- a/compiler/optimizing/graph_visualizer.cc +++ b/compiler/optimizing/graph_visualizer.cc @@ -21,6 +21,7 @@ #include <cctype> #include <sstream> +#include "android-base/stringprintf.h" #include "art_method.h" #include "base/intrusive_forward_list.h" #include "bounds_check_elimination.h" @@ -42,6 +43,8 @@ namespace art { +using android::base::StringPrintf; + static bool HasWhitespace(const char* str) { DCHECK(str != nullptr); while (str[0] != 0) { @@ -449,14 +452,11 @@ class HGraphVisualizerPrinter : public HGraphDelegateVisitor { } void VisitCompare(HCompare* compare) override { - ComparisonBias bias = compare->GetBias(); - StartAttributeStream("bias") << (bias == ComparisonBias::kGtBias - ? "gt" - : (bias == ComparisonBias::kLtBias ? "lt" : "none")); + StartAttributeStream("bias") << compare->GetBias(); } void VisitInvoke(HInvoke* invoke) override { - StartAttributeStream("dex_file_index") << invoke->GetDexMethodIndex(); + StartAttributeStream("dex_file_index") << invoke->GetMethodReference().index; ArtMethod* method = invoke->GetResolvedMethod(); // We don't print signatures, which conflict with c1visualizer format. static constexpr bool kWithSignature = false; @@ -464,7 +464,7 @@ class HGraphVisualizerPrinter : public HGraphDelegateVisitor { // other invokes might be coming from inlined methods. ScopedObjectAccess soa(Thread::Current()); std::string method_name = (method == nullptr) - ? GetGraph()->GetDexFile().PrettyMethod(invoke->GetDexMethodIndex(), kWithSignature) + ? invoke->GetMethodReference().PrettyMethod(kWithSignature) : method->PrettyMethod(kWithSignature); StartAttributeStream("method_name") << method_name; StartAttributeStream("always_throws") << std::boolalpha @@ -906,6 +906,19 @@ void HGraphVisualizer::PrintHeader(const char* method_name) const { printer.Flush(); } +std::string HGraphVisualizer::InsertMetaDataAsCompilationBlock(const std::string& meta_data) { + std::string time_str = std::to_string(time(nullptr)); + std::string quoted_meta_data = "\"" + meta_data + "\""; + return StringPrintf("begin_compilation\n" + " name %s\n" + " method %s\n" + " date %s\n" + "end_compilation\n", + quoted_meta_data.c_str(), + quoted_meta_data.c_str(), + time_str.c_str()); +} + void HGraphVisualizer::DumpGraph(const char* pass_name, bool is_after_pass, bool graph_in_bad_state) const { |