src/share/vm/opto/cfgnode.cpp

changeset 4115
e626685e9f6c
parent 4037
da91efe96a93
child 4159
8e47bac5643a
     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

mercurial