diff options
author | Nicolas Geoffray <ngeoffray@google.com> | 2014-05-14 13:27:44 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2014-05-14 13:27:45 +0000 |
commit | c2ffcecb61e474f29f3c6a8721dfd00e0252b1f8 (patch) | |
tree | 34d20940d660098d0bb813cec0a1dd8aadca3f69 /compiler/optimizing/graph_visualizer.h | |
parent | f54fcba62745f897b9e741594dc5f4b2143601f6 (diff) | |
parent | f635e63318447ca04731b265a86a573c9ed1737c (diff) | |
download | android_art-c2ffcecb61e474f29f3c6a8721dfd00e0252b1f8.tar.gz android_art-c2ffcecb61e474f29f3c6a8721dfd00e0252b1f8.tar.bz2 android_art-c2ffcecb61e474f29f3c6a8721dfd00e0252b1f8.zip |
Merge "Add a compilation tracing mechanism to the new compiler."
Diffstat (limited to 'compiler/optimizing/graph_visualizer.h')
-rw-r--r-- | compiler/optimizing/graph_visualizer.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/compiler/optimizing/graph_visualizer.h b/compiler/optimizing/graph_visualizer.h new file mode 100644 index 0000000000..433d55d421 --- /dev/null +++ b/compiler/optimizing/graph_visualizer.h @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef ART_COMPILER_OPTIMIZING_GRAPH_VISUALIZER_H_ +#define ART_COMPILER_OPTIMIZING_GRAPH_VISUALIZER_H_ + +#include "utils/allocation.h" + +namespace art { + +class DexCompilationUnit; +class HGraph; + +/** + * If enabled, emits compilation information suitable for the c1visualizer tool + * and IRHydra. + * Currently only works if the compiler is single threaded. + */ +class HGraphVisualizer : public ValueObject { + public: + /** + * If output is not null, and the method name of the dex compilation + * unit contains `string_filter`, the compilation information will be + * emitted. + */ + HGraphVisualizer(std::ostream* output, + HGraph* graph, + const char* string_filter, + const DexCompilationUnit& cu); + + /** + * If this visualizer is enabled, emit the compilation information + * in `output_`. + */ + void DumpGraph(const char* pass_name); + + private: + std::ostream* const output_; + HGraph* const graph_; + + // Is true when `output_` is not null, and the compiled method's name + // contains the string_filter given in the constructor. + bool is_enabled_; + + DISALLOW_COPY_AND_ASSIGN(HGraphVisualizer); +}; + +} // namespace art + +#endif // ART_COMPILER_OPTIMIZING_GRAPH_VISUALIZER_H_ |