1.1 --- a/src/share/vm/opto/cfgnode.cpp Tue Sep 25 15:48:17 2012 -0700 1.2 +++ b/src/share/vm/opto/cfgnode.cpp Thu Sep 27 09:38:42 2012 -0700 1.3 @@ -612,17 +612,17 @@ 1.4 convf2i->in(1) == bot_in ) { 1.5 // Matched pattern, including LShiftI; RShiftI, replace with integer compares 1.6 // max test 1.7 - Node *cmp = gvn->register_new_node_with_optimizer(new (phase->C, 3) CmpINode( convf2i, min )); 1.8 - Node *boo = gvn->register_new_node_with_optimizer(new (phase->C, 2) BoolNode( cmp, BoolTest::lt )); 1.9 - IfNode *iff = (IfNode*)gvn->register_new_node_with_optimizer(new (phase->C, 2) IfNode( top_if->in(0), boo, PROB_UNLIKELY_MAG(5), top_if->_fcnt )); 1.10 - Node *if_min= gvn->register_new_node_with_optimizer(new (phase->C, 1) IfTrueNode (iff)); 1.11 - Node *ifF = gvn->register_new_node_with_optimizer(new (phase->C, 1) IfFalseNode(iff)); 1.12 + Node *cmp = gvn->register_new_node_with_optimizer(new (phase->C) CmpINode( convf2i, min )); 1.13 + Node *boo = gvn->register_new_node_with_optimizer(new (phase->C) BoolNode( cmp, BoolTest::lt )); 1.14 + IfNode *iff = (IfNode*)gvn->register_new_node_with_optimizer(new (phase->C) IfNode( top_if->in(0), boo, PROB_UNLIKELY_MAG(5), top_if->_fcnt )); 1.15 + Node *if_min= gvn->register_new_node_with_optimizer(new (phase->C) IfTrueNode (iff)); 1.16 + Node *ifF = gvn->register_new_node_with_optimizer(new (phase->C) IfFalseNode(iff)); 1.17 // min test 1.18 - cmp = gvn->register_new_node_with_optimizer(new (phase->C, 3) CmpINode( convf2i, max )); 1.19 - boo = gvn->register_new_node_with_optimizer(new (phase->C, 2) BoolNode( cmp, BoolTest::gt )); 1.20 - iff = (IfNode*)gvn->register_new_node_with_optimizer(new (phase->C, 2) IfNode( ifF, boo, PROB_UNLIKELY_MAG(5), bot_if->_fcnt )); 1.21 - Node *if_max= gvn->register_new_node_with_optimizer(new (phase->C, 1) IfTrueNode (iff)); 1.22 - ifF = gvn->register_new_node_with_optimizer(new (phase->C, 1) IfFalseNode(iff)); 1.23 + cmp = gvn->register_new_node_with_optimizer(new (phase->C) CmpINode( convf2i, max )); 1.24 + boo = gvn->register_new_node_with_optimizer(new (phase->C) BoolNode( cmp, BoolTest::gt )); 1.25 + iff = (IfNode*)gvn->register_new_node_with_optimizer(new (phase->C) IfNode( ifF, boo, PROB_UNLIKELY_MAG(5), bot_if->_fcnt )); 1.26 + Node *if_max= gvn->register_new_node_with_optimizer(new (phase->C) IfTrueNode (iff)); 1.27 + ifF = gvn->register_new_node_with_optimizer(new (phase->C) IfFalseNode(iff)); 1.28 // update input edges to region node 1.29 set_req_X( min_idx, if_min, gvn ); 1.30 set_req_X( max_idx, if_max, gvn ); 1.31 @@ -681,7 +681,7 @@ 1.32 PhiNode* PhiNode::make(Node* r, Node* x, const Type *t, const TypePtr* at) { 1.33 uint preds = r->req(); // Number of predecessor paths 1.34 assert(t != Type::MEMORY || at == flatten_phi_adr_type(at), "flatten at"); 1.35 - PhiNode* p = new (Compile::current(), preds) PhiNode(r, t, at); 1.36 + PhiNode* p = new (Compile::current()) PhiNode(r, t, at); 1.37 for (uint j = 1; j < preds; j++) { 1.38 // Fill in all inputs, except those which the region does not yet have 1.39 if (r->in(j) != NULL) 1.40 @@ -699,7 +699,7 @@ 1.41 const Type* t = x->bottom_type(); 1.42 const TypePtr* at = NULL; 1.43 if (t == Type::MEMORY) at = flatten_phi_adr_type(x->adr_type()); 1.44 - return new (Compile::current(), r->req()) PhiNode(r, t, at); 1.45 + return new (Compile::current()) PhiNode(r, t, at); 1.46 } 1.47 1.48 1.49 @@ -1205,9 +1205,9 @@ 1.50 } else return NULL; 1.51 1.52 // Build int->bool conversion 1.53 - Node *n = new (phase->C, 2) Conv2BNode( cmp->in(1) ); 1.54 + Node *n = new (phase->C) Conv2BNode( cmp->in(1) ); 1.55 if( flipped ) 1.56 - n = new (phase->C, 3) XorINode( phase->transform(n), phase->intcon(1) ); 1.57 + n = new (phase->C) XorINode( phase->transform(n), phase->intcon(1) ); 1.58 1.59 return n; 1.60 } 1.61 @@ -1266,9 +1266,9 @@ 1.62 if( q->is_Con() && phase->type(q) != TypeInt::ZERO && y->is_Con() ) 1.63 return NULL; 1.64 1.65 - Node *cmplt = phase->transform( new (phase->C, 3) CmpLTMaskNode(p,q) ); 1.66 - Node *j_and = phase->transform( new (phase->C, 3) AndINode(cmplt,y) ); 1.67 - return new (phase->C, 3) AddINode(j_and,x); 1.68 + Node *cmplt = phase->transform( new (phase->C) CmpLTMaskNode(p,q) ); 1.69 + Node *j_and = phase->transform( new (phase->C) AndINode(cmplt,y) ); 1.70 + return new (phase->C) AddINode(j_and,x); 1.71 } 1.72 1.73 //------------------------------is_absolute------------------------------------ 1.74 @@ -1330,17 +1330,17 @@ 1.75 if( sub->Opcode() != Op_SubF || 1.76 sub->in(2) != x || 1.77 phase->type(sub->in(1)) != tzero ) return NULL; 1.78 - x = new (phase->C, 2) AbsFNode(x); 1.79 + x = new (phase->C) AbsFNode(x); 1.80 if (flip) { 1.81 - x = new (phase->C, 3) SubFNode(sub->in(1), phase->transform(x)); 1.82 + x = new (phase->C) SubFNode(sub->in(1), phase->transform(x)); 1.83 } 1.84 } else { 1.85 if( sub->Opcode() != Op_SubD || 1.86 sub->in(2) != x || 1.87 phase->type(sub->in(1)) != tzero ) return NULL; 1.88 - x = new (phase->C, 2) AbsDNode(x); 1.89 + x = new (phase->C) AbsDNode(x); 1.90 if (flip) { 1.91 - x = new (phase->C, 3) SubDNode(sub->in(1), phase->transform(x)); 1.92 + x = new (phase->C) SubDNode(sub->in(1), phase->transform(x)); 1.93 } 1.94 } 1.95 1.96 @@ -1415,7 +1415,7 @@ 1.97 // Now start splitting out the flow paths that merge the same value. 1.98 // Split first the RegionNode. 1.99 PhaseIterGVN *igvn = phase->is_IterGVN(); 1.100 - RegionNode *newr = new (phase->C, hit+1) RegionNode(hit+1); 1.101 + RegionNode *newr = new (phase->C) RegionNode(hit+1); 1.102 split_once(igvn, phi, val, r, newr); 1.103 1.104 // Now split all other Phis than this one 1.105 @@ -1723,13 +1723,13 @@ 1.106 } 1.107 if (doit) { 1.108 if (base == NULL) { 1.109 - base = new (phase->C, in(0)->req()) PhiNode(in(0), type, NULL); 1.110 + base = new (phase->C) PhiNode(in(0), type, NULL); 1.111 for (uint i = 1; i < req(); i++) { 1.112 base->init_req(i, in(i)->in(AddPNode::Base)); 1.113 } 1.114 phase->is_IterGVN()->register_new_node_with_optimizer(base); 1.115 } 1.116 - return new (phase->C, 4) AddPNode(base, base, y); 1.117 + return new (phase->C) AddPNode(base, base, y); 1.118 } 1.119 } 1.120 } 1.121 @@ -1806,7 +1806,7 @@ 1.122 // Phi(...MergeMem(m0, m1:AT1, m2:AT2)...) into 1.123 // MergeMem(Phi(...m0...), Phi:AT1(...m1...), Phi:AT2(...m2...)) 1.124 PhaseIterGVN *igvn = phase->is_IterGVN(); 1.125 - Node* hook = new (phase->C, 1) Node(1); 1.126 + Node* hook = new (phase->C) Node(1); 1.127 PhiNode* new_base = (PhiNode*) clone(); 1.128 // Must eagerly register phis, since they participate in loops. 1.129 if (igvn) { 1.130 @@ -1896,7 +1896,7 @@ 1.131 PhaseIterGVN *igvn = phase->is_IterGVN(); 1.132 // Make narrow type for new phi. 1.133 const Type* narrow_t = TypeNarrowOop::make(this->bottom_type()->is_ptr()); 1.134 - PhiNode* new_phi = new (phase->C, r->req()) PhiNode(r, narrow_t); 1.135 + PhiNode* new_phi = new (phase->C) PhiNode(r, narrow_t); 1.136 uint orig_cnt = req(); 1.137 for (uint i=1; i<req(); ++i) {// For all paths in 1.138 Node *ii = in(i); 1.139 @@ -1909,14 +1909,14 @@ 1.140 if (ii->as_Phi() == this) { 1.141 new_ii = new_phi; 1.142 } else { 1.143 - new_ii = new (phase->C, 2) EncodePNode(ii, narrow_t); 1.144 + new_ii = new (phase->C) EncodePNode(ii, narrow_t); 1.145 igvn->register_new_node_with_optimizer(new_ii); 1.146 } 1.147 } 1.148 new_phi->set_req(i, new_ii); 1.149 } 1.150 igvn->register_new_node_with_optimizer(new_phi, this); 1.151 - progress = new (phase->C, 2) DecodeNNode(new_phi, bottom_type()); 1.152 + progress = new (phase->C) DecodeNNode(new_phi, bottom_type()); 1.153 } 1.154 } 1.155 #endif