Lines Matching refs:ctrl

34 void PhaseMacroExpand::insert_mem_bar(Node** ctrl, Node** mem, int opcode, Node* precedent) {
36 mb->init_req(TypeFunc::Control, *ctrl);
39 *ctrl = new ProjNode(mb,TypeFunc::Control);
40 transform_later(*ctrl);
65 Node* PhaseMacroExpand::make_leaf_call(Node* ctrl, Node* mem,
75 call->init_req(TypeFunc::Control, ctrl);
107 Node* PhaseMacroExpand::generate_guard(Node** ctrl, Node* test, RegionNode* region, float true_prob) {
108 if ((*ctrl)->is_top()) {
119 IfNode* iff = new IfNode(*ctrl, test, true_prob, COUNT_UNKNOWN);
132 *ctrl = if_fast;
137 inline Node* PhaseMacroExpand::generate_slow_guard(Node** ctrl, Node* test, RegionNode* region) {
138 return generate_guard(ctrl, test, region, PROB_UNLIKELY_MAG(3));
141 void PhaseMacroExpand::generate_negative_guard(Node** ctrl, Node* index, RegionNode* region) {
142 if ((*ctrl)->is_top())
150 generate_guard(ctrl, bol_lt, region, PROB_MIN);
153 void PhaseMacroExpand::generate_limit_guard(Node** ctrl, Node* offset, Node* subseq_length, Node* array_length, RegionNode* region) {
154 if ((*ctrl)->is_top())
168 generate_guard(ctrl, bol_lt, region, PROB_MIN);
171 Node* PhaseMacroExpand::generate_nonpositive_guard(Node** ctrl, Node* index, bool never_negative) {
172 if ((*ctrl)->is_top()) return NULL;
181 Node* is_notp = generate_guard(ctrl, bol_le, NULL, PROB_MIN);
186 void PhaseMacroExpand::finish_arraycopy_call(Node* call, Node** ctrl, MergeMemNode** mem, const TypePtr* adr_type) {
189 *ctrl = new ProjNode(call,TypeFunc::Control);
190 transform_later(*ctrl);
274 Node** ctrl, MergeMemNode* mem, Node** io,
354 Node* cv = generate_generic_arraycopy(ctrl, &mem,
359 checked_control = *ctrl;
363 *ctrl = top();
366 Node* not_pos = generate_nonpositive_guard(ctrl, copy_length, length_never_negative);
379 assert(!local_ctrl->is_top(), "no ctrl?");
413 if (!(*ctrl)->is_top() && dest_uninitialized) {
423 generate_clear_array(*ctrl, mem,
435 if (!(*ctrl)->is_top() && !dest_tail->eqv_uncast(dest_length)) {
438 tail_ctl = generate_slow_guard(ctrl, bol_lt, NULL);
439 assert(tail_ctl != NULL || !(*ctrl)->is_top(), "must be an outcome");
443 if (!(*ctrl)->is_top() && alloc != NULL && basic_elem_type != T_OBJECT) {
447 Node* local_ctrl = *ctrl, *local_io = *io;
463 *ctrl = top(); // no regular fast path
469 Node* notail_ctl = (*ctrl)->is_top() ? NULL : *ctrl;
470 *ctrl = tail_ctl;
472 generate_clear_array(*ctrl, mem,
482 generate_clear_array(*ctrl, mem,
486 done_ctl->init_req(2, *ctrl);
488 *ctrl = done_ctl;
496 if (!(*ctrl)->is_top() && copy_type == T_OBJECT) {
526 Node* not_subtype_ctrl = Phase::gen_subtype_check(src_klass, dest_klass, ctrl, mem, &_igvn);
561 if (!(*ctrl)->is_top()) {
563 Node* local_ctrl = *ctrl;
583 *ctrl = checked_control;
584 if (!(*ctrl)->is_top()) {
592 IfNode* iff = new IfNode(*ctrl, bol, PROB_MAX, COUNT_UNKNOWN);
603 *ctrl = new IfFalseNode(iff);
604 transform_later(*ctrl);
614 slow_reg2 ->init_req(2, *ctrl);
650 *ctrl = slow_control;
651 if (!(*ctrl)->is_top()) {
652 Node* local_ctrl = *ctrl, *local_io = slow_i_o;
688 *ctrl = result_region;
712 insert_mem_bar(ctrl, &out_mem, Op_MemBarStoreStore);
714 insert_mem_bar(ctrl, &out_mem, Op_MemBarCPUOrder);
719 _igvn.replace_node(_fallthroughcatchproj, *ctrl);
725 assert(ArrayCopyNode::may_modify(dest_t, (*ctrl)->in(0)->as_MemBar(), &_igvn, ac), "dependency on arraycopy lost");
756 void PhaseMacroExpand::generate_clear_array(Node* ctrl, MergeMemNode* merge_mem,
797 mem = ClearArrayNode::clear_memory(ctrl, mem, dest,
802 mem = ClearArrayNode::clear_memory(ctrl, mem, dest,
815 mem = ClearArrayNode::clear_memory(ctrl, mem, dest,
844 mem = StoreNode::make(_igvn, ctrl, mem, p1, adr_type, intcon(0), T_INT, MemNode::unordered);
849 mem = ClearArrayNode::clear_memory(ctrl, mem, dest,
861 bool PhaseMacroExpand::generate_block_arraycopy(Node** ctrl, MergeMemNode** mem, Node* io,
897 LoadNode::make(_igvn, *ctrl, (*mem)->memory_at(alias_idx), sptr, adr_type,
901 StoreNode::make(_igvn, *ctrl, (*mem)->memory_at(alias_idx), dptr, adr_type,
921 generate_unchecked_arraycopy(ctrl, mem,
932 Node** ctrl, Node* mem, Node** io,
944 call->init_req(TypeFunc::Control, *ctrl);
961 *ctrl = _fallthroughcatchproj->clone();
962 transform_later(*ctrl);
984 Node* PhaseMacroExpand::generate_checkcast_arraycopy(Node** ctrl, MergeMemNode** mem,
990 if ((*ctrl)->is_top()) return NULL;
1011 Node* call = make_leaf_call(*ctrl, *mem, call_type, copyfunc_addr, "checkcast_arraycopy", adr_type,
1014 finish_arraycopy_call(call, ctrl, mem, adr_type);
1023 Node* PhaseMacroExpand::generate_generic_arraycopy(Node** ctrl, MergeMemNode** mem,
1028 if ((*ctrl)->is_top()) return NULL;
1037 Node* call = make_leaf_call(*ctrl, *mem, call_type, copyfunc_addr, "generic_arraycopy", adr_type,
1040 finish_arraycopy_call(call, ctrl, mem, adr_type);
1049 void PhaseMacroExpand::generate_unchecked_arraycopy(Node** ctrl, MergeMemNode** mem,
1056 if ((*ctrl)->is_top()) return;
1072 Node* call = make_leaf_call(*ctrl, *mem, call_type, copyfunc_addr, copyfunc_name, adr_type,
1075 finish_arraycopy_call(call, ctrl, mem, adr_type);
1079 Node* ctrl = ac->in(TypeFunc::Control);
1099 Node* call = make_leaf_call(ctrl, mem, call_type, copyfunc_addr, copyfunc_name, raw_adr_type, src, dest, length XTOP);
1125 generate_arraycopy(ac, alloc, &ctrl, merge_mem, &io,
1174 insert_mem_bar(&ctrl, &mem, Op_MemBarCPUOrder);
1181 Node* mem = generate_arraycopy(ac, NULL, &ctrl, merge_mem, &io,
1194 insert_mem_bar(&ctrl, &mem, Op_MemBarCPUOrder);
1208 merge_mem = generate_slow_arraycopy(ac, &ctrl, mem, &io, TypePtr::BOTTOM, src, src_offset, dest, dest_offset, length, false);
1213 _igvn.replace_node(_fallthroughcatchproj, ctrl);
1249 generate_negative_guard(&ctrl, src_offset, slow_region);
1252 generate_negative_guard(&ctrl, dest_offset, slow_region);
1260 generate_limit_guard(&ctrl,
1268 generate_limit_guard(&ctrl,
1285 generate_arraycopy(ac, alloc, &ctrl, merge_mem, &io,