Mercurial > hg > truffle
diff src/share/vm/opto/generateOptoStub.cpp @ 6804:e626685e9f6c
7193318: C2: remove number of inputs requirement from Node's new operator
Summary: Deleted placement new operator of Node - node(size_t, Compile *, int).
Reviewed-by: kvn, twisti
Contributed-by: bharadwaj.yadavalli@oracle.com
author | kvn |
---|---|
date | Thu, 27 Sep 2012 09:38:42 -0700 |
parents | f95d63e2154a |
children | b9a9ed0f8eeb |
line wrap: on
line diff
--- a/src/share/vm/opto/generateOptoStub.cpp Tue Sep 25 15:48:17 2012 -0700 +++ b/src/share/vm/opto/generateOptoStub.cpp Thu Sep 27 09:38:42 2012 -0700 @@ -50,7 +50,7 @@ const TypeTuple *jrange = C->tf()->range(); // The procedure start - StartNode* start = new (C, 2) StartNode(root(), jdomain); + StartNode* start = new (C) StartNode(root(), jdomain); _gvn.set_type_bottom(start); // Make a map, with JVM state @@ -63,7 +63,7 @@ jvms->set_monoff(max_map); jvms->set_endoff(max_map); { - SafePointNode *map = new (C, max_map) SafePointNode( max_map, jvms ); + SafePointNode *map = new (C) SafePointNode( max_map, jvms ); jvms->set_map(map); set_jvms(jvms); assert(map == this->map(), "kit.map is set"); @@ -72,7 +72,7 @@ // Make up the parameters uint i; for( i = 0; i < parm_cnt; i++ ) - map()->init_req(i, _gvn.transform(new (C, 1) ParmNode(start, i))); + map()->init_req(i, _gvn.transform(new (C) ParmNode(start, i))); for( ; i<map()->req(); i++ ) map()->init_req(i, top()); // For nicer debugging @@ -80,7 +80,7 @@ set_all_memory(map()->memory()); // Get base of thread-local storage area - Node* thread = _gvn.transform( new (C, 1) ThreadLocalNode() ); + Node* thread = _gvn.transform( new (C) ThreadLocalNode() ); const int NoAlias = Compile::AliasIdxBot; @@ -160,7 +160,7 @@ //----------------------------- // Make the call node - CallRuntimeNode *call = new (C, c_sig->domain()->cnt()) + CallRuntimeNode *call = new (C) CallRuntimeNode(c_sig, C_function, name, TypePtr::BOTTOM); //----------------------------- @@ -186,23 +186,23 @@ //----------------------------- // Now set up the return results - set_control( _gvn.transform( new (C, 1) ProjNode(call,TypeFunc::Control)) ); - set_i_o( _gvn.transform( new (C, 1) ProjNode(call,TypeFunc::I_O )) ); + set_control( _gvn.transform( new (C) ProjNode(call,TypeFunc::Control)) ); + set_i_o( _gvn.transform( new (C) ProjNode(call,TypeFunc::I_O )) ); set_all_memory_call(call); if (range->cnt() > TypeFunc::Parms) { - Node* retnode = _gvn.transform( new (C, 1) ProjNode(call,TypeFunc::Parms) ); + Node* retnode = _gvn.transform( new (C) ProjNode(call,TypeFunc::Parms) ); // C-land is allowed to return sub-word values. Convert to integer type. assert( retval != Type::TOP, "" ); if (retval == TypeInt::BOOL) { - retnode = _gvn.transform( new (C, 3) AndINode(retnode, intcon(0xFF)) ); + retnode = _gvn.transform( new (C) AndINode(retnode, intcon(0xFF)) ); } else if (retval == TypeInt::CHAR) { - retnode = _gvn.transform( new (C, 3) AndINode(retnode, intcon(0xFFFF)) ); + retnode = _gvn.transform( new (C) AndINode(retnode, intcon(0xFFFF)) ); } else if (retval == TypeInt::BYTE) { - retnode = _gvn.transform( new (C, 3) LShiftINode(retnode, intcon(24)) ); - retnode = _gvn.transform( new (C, 3) RShiftINode(retnode, intcon(24)) ); + retnode = _gvn.transform( new (C) LShiftINode(retnode, intcon(24)) ); + retnode = _gvn.transform( new (C) RShiftINode(retnode, intcon(24)) ); } else if (retval == TypeInt::SHORT) { - retnode = _gvn.transform( new (C, 3) LShiftINode(retnode, intcon(16)) ); - retnode = _gvn.transform( new (C, 3) RShiftINode(retnode, intcon(16)) ); + retnode = _gvn.transform( new (C) LShiftINode(retnode, intcon(16)) ); + retnode = _gvn.transform( new (C) RShiftINode(retnode, intcon(16)) ); } map()->set_req( TypeFunc::Parms, retnode ); } @@ -247,21 +247,21 @@ Node* exit_memory = reset_memory(); - Node* cmp = _gvn.transform( new (C, 3) CmpPNode(pending, null()) ); - Node* bo = _gvn.transform( new (C, 2) BoolNode(cmp, BoolTest::ne) ); + Node* cmp = _gvn.transform( new (C) CmpPNode(pending, null()) ); + Node* bo = _gvn.transform( new (C) BoolNode(cmp, BoolTest::ne) ); IfNode *iff = create_and_map_if(control(), bo, PROB_MIN, COUNT_UNKNOWN); - Node* if_null = _gvn.transform( new (C, 1) IfFalseNode(iff) ); - Node* if_not_null = _gvn.transform( new (C, 1) IfTrueNode(iff) ); + Node* if_null = _gvn.transform( new (C) IfFalseNode(iff) ); + Node* if_not_null = _gvn.transform( new (C) IfTrueNode(iff) ); assert (StubRoutines::forward_exception_entry() != NULL, "must be generated before"); Node *exc_target = makecon(TypeRawPtr::make( StubRoutines::forward_exception_entry() )); - Node *to_exc = new (C, TypeFunc::Parms+2) TailCallNode(if_not_null, - i_o(), - exit_memory, - frameptr(), - returnadr(), - exc_target, null()); + Node *to_exc = new (C) TailCallNode(if_not_null, + i_o(), + exit_memory, + frameptr(), + returnadr(), + exc_target, null()); root()->add_req(_gvn.transform(to_exc)); // bind to root to keep live C->init_start(start); @@ -271,31 +271,31 @@ switch( is_fancy_jump ) { case 0: // Make a return instruction // Return to caller, free any space for return address - ret = new (C, TypeFunc::Parms) ReturnNode(TypeFunc::Parms, if_null, - i_o(), - exit_memory, - frameptr(), - returnadr()); + ret = new (C) ReturnNode(TypeFunc::Parms, if_null, + i_o(), + exit_memory, + frameptr(), + returnadr()); if (C->tf()->range()->cnt() > TypeFunc::Parms) ret->add_req( map()->in(TypeFunc::Parms) ); break; case 1: // This is a fancy tail-call jump. Jump to computed address. // Jump to new callee; leave old return address alone. - ret = new (C, TypeFunc::Parms+2) TailCallNode(if_null, - i_o(), - exit_memory, - frameptr(), - returnadr(), - target, map()->in(TypeFunc::Parms)); + ret = new (C) TailCallNode(if_null, + i_o(), + exit_memory, + frameptr(), + returnadr(), + target, map()->in(TypeFunc::Parms)); break; case 2: // Pop return address & jump // Throw away old return address; jump to new computed address //assert(C_function == CAST_FROM_FN_PTR(address, OptoRuntime::rethrow_C), "fancy_jump==2 only for rethrow"); - ret = new (C, TypeFunc::Parms+2) TailJumpNode(if_null, - i_o(), - exit_memory, - frameptr(), - target, map()->in(TypeFunc::Parms)); + ret = new (C) TailJumpNode(if_null, + i_o(), + exit_memory, + frameptr(), + target, map()->in(TypeFunc::Parms)); break; default: ShouldNotReachHere();