64 static const char *SUCCESSORS_ELEMENT;
65 static const char *SUCCESSOR_ELEMENT;
66 static const char *METHOD_IS_PUBLIC_PROPERTY;
67 static const char *METHOD_IS_STATIC_PROPERTY;
68 static const char *TRUE_VALUE;
69 static const char *NODE_NAME_PROPERTY;
70 static const char *EDGE_NAME_PROPERTY;
71 static const char *NODE_ID_PROPERTY;
72 static const char *FROM_PROPERTY;
73 static const char *TO_PROPERTY;
74 static const char *PROPERTY_NAME_PROPERTY;
75 static const char *GRAPH_NAME_PROPERTY;
76 static const char *INDEX_PROPERTY;
77 static const char *METHOD_ELEMENT;
78 static const char *INLINE_ELEMENT;
79 static const char *BYTECODES_ELEMENT;
80 static const char *METHOD_BCI_PROPERTY;
81 static const char *METHOD_SHORT_NAME_PROPERTY;
82 static const char *ASSEMBLY_ELEMENT;
83
84 elapsedTimer _walk_time;
85 elapsedTimer _output_time;
86 elapsedTimer _build_blocks_time;
87
88 static int _file_count;
89 networkStream *_stream;
90 xmlStream *_xml;
91 outputStream *_output;
92 ciMethod *_current_method;
93 int _depth;
94 char buffer[128];
95 bool _should_send_method;
96 PhaseChaitin* _chaitin;
97 bool _traverse_outs;
98 Compile *C;
99
100 static void pre_node(Node* node, void *env);
101 static void post_node(Node* node, void *env);
102
103 void print_indent();
104 void print_method(ciMethod *method, int bci, InlineTree *tree);
105 void print_inline_tree(InlineTree *tree);
106 void visit_node(Node *n, bool edges, VectorSet* temp_set);
107 void walk_nodes(Node *start, bool edges, VectorSet* temp_set);
108 void begin_elem(const char *s);
109 void end_elem();
110 void begin_head(const char *s);
111 void end_head();
112 void print_attr(const char *name, const char *val);
113 void print_attr(const char *name, intptr_t val);
114 void print_prop(const char *name, const char *val);
115 void print_prop(const char *name, int val);
116 void tail(const char *name);
117 void head(const char *name);
118 void text(const char *s);
119 intptr_t get_node_id(Node *n);
120 IdealGraphPrinter();
121 ~IdealGraphPrinter();
122
123 public:
124
125 static void clean_up();
126 static IdealGraphPrinter *printer();
127
128 bool traverse_outs();
129 void set_traverse_outs(bool b);
130 void print_inlining();
131 void begin_method();
132 void end_method();
133 void print_method(const char *name, int level=1, bool clear_nodes = false);
134 void print(const char *name, Node *root, int level=1, bool clear_nodes = false);
135 void print_xml(const char *name);
136 bool should_print(int level);
137 void set_compile(Compile* compile) {C = compile; }
138 };
139
140 #endif
141
142 #endif // SHARE_OPTO_IDEALGRAPHPRINTER_HPP
|
64 static const char *SUCCESSORS_ELEMENT;
65 static const char *SUCCESSOR_ELEMENT;
66 static const char *METHOD_IS_PUBLIC_PROPERTY;
67 static const char *METHOD_IS_STATIC_PROPERTY;
68 static const char *TRUE_VALUE;
69 static const char *NODE_NAME_PROPERTY;
70 static const char *EDGE_NAME_PROPERTY;
71 static const char *NODE_ID_PROPERTY;
72 static const char *FROM_PROPERTY;
73 static const char *TO_PROPERTY;
74 static const char *PROPERTY_NAME_PROPERTY;
75 static const char *GRAPH_NAME_PROPERTY;
76 static const char *INDEX_PROPERTY;
77 static const char *METHOD_ELEMENT;
78 static const char *INLINE_ELEMENT;
79 static const char *BYTECODES_ELEMENT;
80 static const char *METHOD_BCI_PROPERTY;
81 static const char *METHOD_SHORT_NAME_PROPERTY;
82 static const char *ASSEMBLY_ELEMENT;
83
84 static int _file_count;
85 networkStream *_stream;
86 xmlStream *_xml;
87 outputStream *_output;
88 ciMethod *_current_method;
89 int _depth;
90 char buffer[128];
91 bool _should_send_method;
92 PhaseChaitin* _chaitin;
93 bool _traverse_outs;
94 Compile *C;
95
96 void print_method(ciMethod *method, int bci, InlineTree *tree);
97 void print_inline_tree(InlineTree *tree);
98 void visit_node(Node *n, bool edges, VectorSet* temp_set);
99 void walk_nodes(Node *start, bool edges, VectorSet* temp_set);
100 void begin_elem(const char *s);
101 void end_elem();
102 void begin_head(const char *s);
103 void end_head();
104 void print_attr(const char *name, const char *val);
105 void print_attr(const char *name, intptr_t val);
106 void print_prop(const char *name, const char *val);
107 void print_prop(const char *name, int val);
108 void tail(const char *name);
109 void head(const char *name);
110 void text(const char *s);
111 IdealGraphPrinter();
112 ~IdealGraphPrinter();
113
114 public:
115
116 static void clean_up();
117 static IdealGraphPrinter *printer();
118
119 bool traverse_outs();
120 void set_traverse_outs(bool b);
121 void print_inlining();
122 void begin_method();
123 void end_method();
124 void print_method(const char *name, int level = 0);
125 void print(const char *name, Node *root);
126 bool should_print(int level);
127 void set_compile(Compile* compile) {C = compile; }
128 };
129
130 #endif
131
132 #endif // SHARE_OPTO_IDEALGRAPHPRINTER_HPP
|