8004073: Implement C2 Ideal node specific dump() method

Add Node::dump_rel() to dump a node and its related nodes (the notion of "related" depends on the node at hand); add Node::dump_comp() to dump a node in compact representation; add Node::dump_rel_comp() to dump a node and its related nodes in compact representation; add the required machinery; extend some C2 IR nodes with compact and related dumping

Reviewed-by: kvn, roland
This commit is contained in:
Michael Haupt 2015-03-18 16:16:30 +01:00
parent c030d4e363
commit fd2f61a53f
17 changed files with 593 additions and 51 deletions

View file

@ -79,10 +79,15 @@ void ArrayCopyNode::connect_outputs(GraphKit* kit) {
#ifndef PRODUCT
const char* ArrayCopyNode::_kind_names[] = {"arraycopy", "arraycopy, validated arguments", "clone", "oop array clone", "CopyOf", "CopyOfRange"};
void ArrayCopyNode::dump_spec(outputStream *st) const {
CallNode::dump_spec(st);
st->print(" (%s%s)", _kind_names[_kind], _alloc_tightly_coupled ? ", tightly coupled allocation" : "");
}
void ArrayCopyNode::dump_compact_spec(outputStream* st) const {
st->print("%s%s", _kind_names[_kind], _alloc_tightly_coupled ? ",tight" : "");
}
#endif
intptr_t ArrayCopyNode::get_length_if_constant(PhaseGVN *phase) const {