1 /* |
1 /* |
2 * Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. |
7 * published by the Free Software Foundation. |
39 class Matcher; |
39 class Matcher; |
40 class Node; |
40 class Node; |
41 class InlineTree; |
41 class InlineTree; |
42 class ciMethod; |
42 class ciMethod; |
43 |
43 |
44 class IdealGraphPrinter |
44 class IdealGraphPrinter : public CHeapObj<mtCompiler> { |
45 { |
45 private: |
46 private: |
|
47 |
46 |
48 static const char *INDENT; |
47 static const char *INDENT; |
49 static const char *TOP_ELEMENT; |
48 static const char *TOP_ELEMENT; |
50 static const char *GROUP_ELEMENT; |
49 static const char *GROUP_ELEMENT; |
51 static const char *GRAPH_ELEMENT; |
50 static const char *GRAPH_ELEMENT; |
119 void text(const char *s); |
118 void text(const char *s); |
120 intptr_t get_node_id(Node *n); |
119 intptr_t get_node_id(Node *n); |
121 IdealGraphPrinter(); |
120 IdealGraphPrinter(); |
122 ~IdealGraphPrinter(); |
121 ~IdealGraphPrinter(); |
123 |
122 |
124 public: |
123 public: |
125 |
124 |
126 static void clean_up(); |
125 static void clean_up(); |
127 static IdealGraphPrinter *printer(); |
126 static IdealGraphPrinter *printer(); |
128 |
127 |
129 bool traverse_outs(); |
128 bool traverse_outs(); |
133 void begin_method(Compile* compile); |
132 void begin_method(Compile* compile); |
134 void end_method(); |
133 void end_method(); |
135 void print_method(Compile* compile, const char *name, int level=1, bool clear_nodes = false); |
134 void print_method(Compile* compile, const char *name, int level=1, bool clear_nodes = false); |
136 void print(Compile* compile, const char *name, Node *root, int level=1, bool clear_nodes = false); |
135 void print(Compile* compile, const char *name, Node *root, int level=1, bool clear_nodes = false); |
137 void print_xml(const char *name); |
136 void print_xml(const char *name); |
138 |
|
139 |
|
140 }; |
137 }; |
141 |
138 |
142 #endif |
139 #endif |
143 |
140 |
144 #endif // SHARE_VM_OPTO_IDEALGRAPHPRINTER_HPP |
141 #endif // SHARE_VM_OPTO_IDEALGRAPHPRINTER_HPP |