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