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