Lines Matching defs:call

140   assert(!map()->has_exceptions(),    "call add_exception_states_from 1st");
141 assert(!is_hidden_merge(control()), "call use_exception_state, not set_map");
251 // We check sp also because call bytecodes can generate exceptions
332 assert(ex_jvms->same_calls_as(phi_map->_jvms), "consistent call chains");
628 // of in-edges on the call to the uncommon trap.
679 assert(!kit->stopped(), "must call stopped() before");
733 // This call is made from many of the bytecode handling
744 // We are building a graph for a call to a native method.
828 void GraphKit::add_safepoint_edges(SafePointNode* call, bool must_throw) {
829 // Add the safepoint edges to the call (or other safepoint).
872 call->set_jvms(out_jvms); // Start jvms list for call node
877 should_reexecute_implied_by_bytecode(out_jvms, call->is_AllocateArray())) {
881 // Presize the call:
882 DEBUG_ONLY(uint non_debug_edges = call->req());
883 call->add_req_batch(top(), youngest_jvms->debug_depth());
884 assert(call->req() == non_debug_edges + youngest_jvms->debug_depth(), "");
886 // Set up edges so that the call looks like this:
895 uint debug_ptr = call->req();
898 // to the call node, & reset all offsets to match call node array.
907 out_jvms->set_map(call);
925 call->set_req(p++, in_map->in(k+j));
936 call->set_req(p++, in_map->in(k+j));
945 call->set_req(p++, in_map->in(k+j));
955 call->set_req(p++, in_map->in(k+j));
962 call->set_req(p++, in_map->in(k+j));
982 assert(call->jvms()->debug_start() == non_debug_edges, "");
983 assert(call->jvms()->debug_end() == call->req(), "");
984 assert(call->jvms()->debug_depth() == call->req() - non_debug_edges, "");
1414 void GraphKit::set_all_memory_call(Node* call, bool separate_io_proj) {
1415 Node* newmem = _gvn.transform( new (C) ProjNode(call, TypeFunc::Memory, separate_io_proj) );
1636 void GraphKit::set_arguments_for_java_call(CallJavaNode* call) {
1637 // Add the call arguments:
1638 uint nargs = call->method()->arg_size();
1641 call->init_req(i + TypeFunc::Parms, arg);
1646 // Connect a newly created call into the current JVMS.
1648 void GraphKit::set_edges_for_java_call(CallJavaNode* call, bool must_throw, bool separate_io_proj) {
1651 call->init_req( TypeFunc::Control, control() );
1652 call->init_req( TypeFunc::I_O , i_o() );
1653 call->init_req( TypeFunc::Memory , reset_memory() );
1654 call->init_req( TypeFunc::FramePtr, frameptr() );
1655 call->init_req( TypeFunc::ReturnAdr, top() );
1657 add_safepoint_edges(call, must_throw);
1659 Node* xcall = _gvn.transform(call);
1665 assert(xcall == call, "call identity is stable");
1669 set_control(_gvn.transform(new (C) ProjNode(call, TypeFunc::Control)));
1670 set_i_o( _gvn.transform(new (C) ProjNode(call, TypeFunc::I_O , separate_io_proj)));
1676 Node* GraphKit::set_results_for_java_call(CallJavaNode* call, bool separate_io_proj) {
1677 if (stopped()) return top(); // maybe the call folded up?
1681 if (call->method() == NULL ||
1682 call->method()->return_type()->basic_type() == T_VOID)
1684 else ret = _gvn.transform(new (C) ProjNode(call, TypeFunc::Parms));
1686 // Note: Since any out-of-line call can produce an exception,
1687 // we always insert an I_O projection from the call into the result.
1689 make_slow_call_ex(call, env()->Throwable_klass(), separate_io_proj);
1695 set_i_o(_gvn.transform( new (C) ProjNode(call, TypeFunc::I_O) ));
1696 set_all_memory(_gvn.transform( new (C) ProjNode(call, TypeFunc::Memory) ));
1710 // after the call, if this call has restricted memory effects.
1711 Node* GraphKit::set_predefined_input_for_runtime_call(SafePointNode* call) {
1714 call->init_req( TypeFunc::Control, control() );
1715 call->init_req( TypeFunc::I_O, top() ); // does no i/o
1716 call->init_req( TypeFunc::Memory, memory ); // may gc ptrs
1717 call->init_req( TypeFunc::FramePtr, frameptr() );
1718 call->init_req( TypeFunc::ReturnAdr, top() );
1723 // Set control and memory (not i_o) from the call.
1725 // except for the RawPtr output of the call, if hook_mem is TypeRawPtr::BOTTOM.
1726 // If hook_mem is NULL, this call produces no memory effects at all.
1728 // then only that memory slice is taken from the call.
1730 // the call, so as to create the correct anti-dependencies on loads
1731 // preceding the call.
1732 void GraphKit::set_predefined_output_for_runtime_call(Node* call,
1736 set_control(_gvn.transform( new (C) ProjNode(call,TypeFunc::Control) ));
1741 // Make memory for the call
1742 Node* mem = _gvn.transform( new (C) ProjNode(call, TypeFunc::Memory) );
1747 // ...else the call has NO memory effects.
1749 // Make sure the call advertises its memory effects precisely.
1751 assert(C->alias_type(call->adr_type()) == C->alias_type(hook_mem),
1752 "call node must be constructed correctly");
1755 // This is not a "slow path" call; all memory comes from the call.
1756 set_all_memory_call(call);
1761 // Replace the call with the current state of the kit.
1762 void GraphKit::replace_call(CallNode* call, Node* result) {
1770 // Find all the needed outputs of this call
1772 call->extract_projections(&callprojs, true);
1774 Node* init_mem = call->in(TypeFunc::Memory);
1779 // Replace all the old call edges with the edges from the inlining result
1833 // Disconnect the call from the graph
1834 call->disconnect_inputs(NULL, C);
1835 C->gvn_replace_by(call, C->top());
1873 // uncommon_trap blob. This helper function inserts a runtime call with the
1884 // no need to call method()->ensure_method_data() at this point.
1968 // Now insert the uncommon trap subroutine call
1972 Node* call = make_runtime_call(RC_NO_LEAF | RC_UNCOMMON |
1977 assert(call->as_CallStaticJava()->uncommon_trap_request() == trap_request,
1981 call->set_req(TypeFunc::ReturnAdr, returnadr());
1982 // The debug info is the only real input to this call.
1984 // Halt-and-catch fire here. The above call should never return!
2013 // the call, dstore_rounding does gvn.transform
2094 // call a set of helper functions. Helper functions first, then drivers.
2149 // Slow-path call
2156 CallNode* call;
2158 call = new(C) CallStaticJavaNode(call_type, call_addr, call_name,
2161 call = new(C) CallLeafNoFPNode(call_type, call_addr, call_name, adr_type);
2163 call = new(C) CallLeafNode(call_type, call_addr, call_name, adr_type);
2167 // except that the memory effects of the call are restricted to AliasIdxRaw.
2169 // Slow path call has no side-effects, uses few values
2175 prev_mem = set_predefined_input_for_runtime_call(call);
2181 set_predefined_input_for_runtime_call(call);
2185 if (parm0 != NULL) { call->init_req(TypeFunc::Parms+0, parm0);
2186 if (parm1 != NULL) { call->init_req(TypeFunc::Parms+1, parm1);
2187 if (parm2 != NULL) { call->init_req(TypeFunc::Parms+2, parm2);
2188 if (parm3 != NULL) { call->init_req(TypeFunc::Parms+3, parm3);
2189 if (parm4 != NULL) { call->init_req(TypeFunc::Parms+4, parm4);
2190 if (parm5 != NULL) { call->init_req(TypeFunc::Parms+5, parm5);
2191 if (parm6 != NULL) { call->init_req(TypeFunc::Parms+6, parm6);
2192 if (parm7 != NULL) { call->init_req(TypeFunc::Parms+7, parm7);
2194 assert(call->in(call->req()-1) != NULL, "must initialize all parms");
2198 add_safepoint_edges(call, ((flags & RC_MUST_THROW) != 0));
2202 call->set_req(TypeFunc::I_O, i_o());
2209 call->set_cnt(PROB_UNLIKELY_MAG(4));
2212 Node* c = _gvn.transform(call);
2213 assert(c == call, "cannot disappear");
2216 // Slow path call has full side-effects.
2217 set_predefined_output_for_runtime_call(call);
2219 // Slow path call has few side-effects, and/or sets few values.
2220 set_predefined_output_for_runtime_call(call, prev_mem, adr_type);
2224 set_i_o(_gvn.transform(new (C) ProjNode(call, TypeFunc::I_O)));
2226 return call;
2260 // Make the exception handler hookups for the slow call
2261 void GraphKit::make_slow_call_ex(Node* call, ciInstanceKlass* ex_klass, bool separate_io_proj) {
2265 Node* i_o = _gvn.transform( new (C) ProjNode(call, TypeFunc::I_O, separate_io_proj) );
2293 // but that's not exposed to the optimizer. This call also doesn't take in an
2522 // (User must make the replace_in_map call.)
2564 // (No, this isn't a call, but it's enough like a virtual call
2598 // and the reflective instance-of call.
2670 // uncommon-trap paths work. Adjust stack after this call.
3009 // a normal slow-call doesn't change i_o, but an allocation does
3628 // logging buffer is full, call the runtime