diff options
author | Fabio Rinaldi <fabio.rinaldi@linaro.org> | 2020-02-10 17:28:06 +0000 |
---|---|---|
committer | Roland Levillain <rpl@google.com> | 2020-07-22 14:37:34 +0000 |
commit | 52d5354a399b4581222d0f02f2677927b48985f7 (patch) | |
tree | c6e9beb18d514c0d586fe8b578a15ddfd9ce532e /compiler/optimizing/graph_visualizer.cc | |
parent | 40b0614be3296e163654c4e293793d00bcf36a5a (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.cc | 16 |
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 { |