Mercurial > hg > truffle
comparison src/share/vm/opto/node.cpp @ 14465:28f281e8de1d
Merge
author | kvn |
---|---|
date | Thu, 20 Feb 2014 12:20:56 -0800 |
parents | 7907932bdd99 45467c53f178 |
children | 29ccc4cbabca |
comparison
equal
deleted
inserted
replaced
14382:805784307dca | 14465:28f281e8de1d |
---|---|
1001 // Get the worst-case Type output for this Node. | 1001 // Get the worst-case Type output for this Node. |
1002 void Node::raise_bottom_type(const Type* new_type) { | 1002 void Node::raise_bottom_type(const Type* new_type) { |
1003 if (is_Type()) { | 1003 if (is_Type()) { |
1004 TypeNode *n = this->as_Type(); | 1004 TypeNode *n = this->as_Type(); |
1005 if (VerifyAliases) { | 1005 if (VerifyAliases) { |
1006 assert(new_type->higher_equal(n->type()), "new type must refine old type"); | 1006 assert(new_type->higher_equal_speculative(n->type()), "new type must refine old type"); |
1007 } | 1007 } |
1008 n->set_type(new_type); | 1008 n->set_type(new_type); |
1009 } else if (is_Load()) { | 1009 } else if (is_Load()) { |
1010 LoadNode *n = this->as_Load(); | 1010 LoadNode *n = this->as_Load(); |
1011 if (VerifyAliases) { | 1011 if (VerifyAliases) { |
1012 assert(new_type->higher_equal(n->type()), "new type must refine old type"); | 1012 assert(new_type->higher_equal_speculative(n->type()), "new type must refine old type"); |
1013 } | 1013 } |
1014 n->set_type(new_type); | 1014 n->set_type(new_type); |
1015 } | 1015 } |
1016 } | 1016 } |
1017 | 1017 |
1529 #endif | 1529 #endif |
1530 | 1530 |
1531 | 1531 |
1532 | 1532 |
1533 #ifndef PRODUCT | 1533 #ifndef PRODUCT |
1534 int Node::_in_dump_cnt = 0; | |
1535 | 1534 |
1536 // -----------------------------Name------------------------------------------- | 1535 // -----------------------------Name------------------------------------------- |
1537 extern const char *NodeClassNames[]; | 1536 extern const char *NodeClassNames[]; |
1538 const char *Node::Name() const { return NodeClassNames[Opcode()]; } | 1537 const char *Node::Name() const { return NodeClassNames[Opcode()]; } |
1539 | 1538 |
1601 //------------------------------dump------------------------------------------ | 1600 //------------------------------dump------------------------------------------ |
1602 // Dump a Node | 1601 // Dump a Node |
1603 void Node::dump(const char* suffix, outputStream *st) const { | 1602 void Node::dump(const char* suffix, outputStream *st) const { |
1604 Compile* C = Compile::current(); | 1603 Compile* C = Compile::current(); |
1605 bool is_new = C->node_arena()->contains(this); | 1604 bool is_new = C->node_arena()->contains(this); |
1606 _in_dump_cnt++; | 1605 C->_in_dump_cnt++; |
1607 st->print("%c%d\t%s\t=== ", is_new ? ' ' : 'o', _idx, Name()); | 1606 st->print("%c%d\t%s\t=== ", is_new ? ' ' : 'o', _idx, Name()); |
1608 | 1607 |
1609 // Dump the required and precedence inputs | 1608 // Dump the required and precedence inputs |
1610 dump_req(st); | 1609 dump_req(st); |
1611 dump_prec(st); | 1610 dump_prec(st); |
1616 #ifdef ASSERT | 1615 #ifdef ASSERT |
1617 st->print(" [%d]",debug_idx()); | 1616 st->print(" [%d]",debug_idx()); |
1618 dump_orig(debug_orig(), st); | 1617 dump_orig(debug_orig(), st); |
1619 #endif | 1618 #endif |
1620 st->cr(); | 1619 st->cr(); |
1621 _in_dump_cnt--; | 1620 C->_in_dump_cnt--; |
1622 return; // don't process dead nodes | 1621 return; // don't process dead nodes |
1623 } | 1622 } |
1624 | 1623 |
1625 // Dump node-specific info | 1624 // Dump node-specific info |
1626 dump_spec(st); | 1625 dump_spec(st); |
1668 nn->jvms()->dump_spec(st); | 1667 nn->jvms()->dump_spec(st); |
1669 } | 1668 } |
1670 } | 1669 } |
1671 } | 1670 } |
1672 if (suffix) st->print(suffix); | 1671 if (suffix) st->print(suffix); |
1673 _in_dump_cnt--; | 1672 C->_in_dump_cnt--; |
1674 } | 1673 } |
1675 | 1674 |
1676 //------------------------------dump_req-------------------------------------- | 1675 //------------------------------dump_req-------------------------------------- |
1677 void Node::dump_req(outputStream *st) const { | 1676 void Node::dump_req(outputStream *st) const { |
1678 // Dump the required input edges | 1677 // Dump the required input edges |