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