summaryrefslogtreecommitdiff
path: root/compiler/optimizing/graph_visualizer.cc
diff options
context:
space:
mode:
authorFabio Rinaldi <fabio.rinaldi@linaro.org>2020-02-10 17:28:06 +0000
committerRoland Levillain <rpl@google.com>2020-07-22 14:37:34 +0000
commit52d5354a399b4581222d0f02f2677927b48985f7 (patch)
treec6e9beb18d514c0d586fe8b578a15ddfd9ce532e /compiler/optimizing/graph_visualizer.cc
parent40b0614be3296e163654c4e293793d00bcf36a5a (diff)
Dump instruction set features in .cfg
This commit adds a compilation block at the beginning of the .cfg dumped by the optimizing compiler when --dump-cfg is enabled. The compilation block appears in the following form: begin_compilation name "isa_features:feature1,-feature2" method "isa_features:feature1,-feature2" date 1580721972 end_compilation This compilation block dump is passed to checker script (see https://android-review.googlesource.com/c/platform/art/+/1290997) for checking if a certain instruction set feature was used at compile time. Author: Fabio Rinaldi Committer: Artem Serov Bug: 147876827 Test: ./art/tools/checker/run_unit_tests.py Test: test.py --target --optimizing Change-Id: If4309af4bab892f715aad1d3bd338f8ee11e497c
Diffstat (limited to 'compiler/optimizing/graph_visualizer.cc')
-rw-r--r--compiler/optimizing/graph_visualizer.cc16
1 files changed, 16 insertions, 0 deletions
diff --git a/compiler/optimizing/graph_visualizer.cc b/compiler/optimizing/graph_visualizer.cc
index 23b93fc373..922a6f6700 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) {
@@ -903,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 {