Lines Matching defs:igvn

69 static Node* split_if(IfNode *iff, PhaseIterGVN *igvn) {
94 const TypePtr *tp = igvn->type(con1)->isa_ptr();
100 igvn->C->set_has_split_ifs(true); // Has chance for split-if
106 const Type *t = cmp2->Value(igvn);
108 igvn->remove_dead_node(cmp2);
222 PhaseGVN *phase = igvn;
241 Node *region_c = new (igvn->C) RegionNode(req_c + 1);
244 Node *region_x = new (igvn->C) RegionNode(len - req_c);
270 igvn->register_new_node_with_optimizer( region_c );
271 igvn->register_new_node_with_optimizer( region_x );
275 Node *hook = new (igvn->C) Node(4);
287 Node *b_c = phase->transform(new (igvn->C) BoolNode(cmp_c,b->_test._test));
288 Node *b_x = phase->transform(new (igvn->C) BoolNode(cmp_x,b->_test._test));
290 IfNode *iff_c = new (igvn->C) IfNode(region_c,b_c,iff->_prob,iff->_fcnt);
291 igvn->set_type_bottom(iff_c);
292 igvn->_worklist.push(iff_c);
295 IfNode *iff_x = new (igvn->C) IfNode(region_x,b_x,iff->_prob, iff->_fcnt);
296 igvn->set_type_bottom(iff_x);
297 igvn->_worklist.push(iff_x);
301 Node *iff_c_t = phase->transform(new (igvn->C) IfTrueNode (iff_c));
302 Node *iff_c_f = phase->transform(new (igvn->C) IfFalseNode(iff_c));
306 iff_c_t = igvn->clone_loop_predicates(predicate_c, iff_c_t, !counted_loop);
307 iff_c_f = igvn->clone_loop_predicates(predicate_c, iff_c_f, !counted_loop);
309 Node *iff_x_t = phase->transform(new (igvn->C) IfTrueNode (iff_x));
310 Node *iff_x_f = phase->transform(new (igvn->C) IfFalseNode(iff_x));
314 iff_x_t = igvn->clone_loop_predicates(predicate_x, iff_x_t, !counted_loop);
315 iff_x_f = igvn->clone_loop_predicates(predicate_x, iff_x_f, !counted_loop);
319 Node *region_s = new (igvn->C) RegionNode(3);
320 igvn->_worklist.push(region_s);
323 igvn->register_new_node_with_optimizer( region_s );
326 Node *region_f = new (igvn->C) RegionNode(3);
327 igvn->_worklist.push(region_f);
330 igvn->register_new_node_with_optimizer( region_f );
332 igvn->hash_delete(cmp);// Remove soon-to-be-dead node from hash table.
341 igvn->rehash_node_delayed(v); // Have to fixup other Phi users
405 igvn->add_users_to_worklist(p);
408 igvn->hash_delete(x);
418 igvn->remove_dead_node(p);
422 igvn->hash_delete(r);
430 igvn->remove_dead_node(u);
434 igvn->remove_dead_node(r);
437 igvn->remove_dead_node( hook );
441 return new (igvn->C) ConINode(TypeInt::ZERO);
530 int flip, jint off_lo, PhaseIterGVN* igvn) {
531 PhaseGVN *gvn = igvn;
554 igvn->rehash_node_delayed( iff );
555 iff->set_req_X( 1, new_bol, igvn );
829 PhaseIterGVN *igvn = phase->is_IterGVN();
845 Node *s = split_if(this, igvn);
922 adjust_check( prev_chk1, range1, index1, flip1, off_lo, igvn );
926 adjust_check( prev_chk2, range1, index1, flip1, off_hi, igvn );
934 adjust_check( prev_chk1, range1, index1, flip1, off_hi, igvn );
1001 dominated_by( prev_dom, igvn );
1009 void IfNode::dominated_by( Node *prev_dom, PhaseIterGVN *igvn ) {
1010 igvn->hash_delete(this); // Remove self to prevent spurious V-N
1014 Node *top = igvn->C->top(); // Shortcut to top
1027 igvn->add_users_to_worklist(ifp);
1046 igvn->replace_input_of(s, l, ctrl_target);
1048 igvn->replace_input_of(s, 0, data_target); // Move child to data-target
1052 igvn->remove_dead_node(ifp);
1056 igvn->remove_dead_node(this);
1105 PhaseIterGVN *igvn = phase->is_IterGVN();
1106 assert( igvn, "Test is not canonical in parser?" );
1111 Node *prior = igvn->hash_find_insert(iff);
1113 igvn->remove_dead_node(iff);
1117 igvn->set_type_bottom(iff);
1119 igvn->_worklist.push(iff);
1125 igvn->register_new_node_with_optimizer(new_if_f);
1126 igvn->register_new_node_with_optimizer(new_if_t);
1128 igvn->replace_node(old_if_f, new_if_t);
1129 igvn->replace_node(old_if_t, new_if_f);