src/share/vm/opto/loopopts.cpp

changeset 670
9c2ecc2ffb12
parent 631
d1605aabd0a1
parent 658
1dd146f17531
child 686
020a0b730379
equal deleted inserted replaced
632:de141433919f 670:9c2ecc2ffb12
39 assert( region->is_Region(), "" ); 39 assert( region->is_Region(), "" );
40 40
41 const Type* type = n->bottom_type(); 41 const Type* type = n->bottom_type();
42 const TypeOopPtr *t_oop = _igvn.type(n)->isa_oopptr(); 42 const TypeOopPtr *t_oop = _igvn.type(n)->isa_oopptr();
43 Node *phi; 43 Node *phi;
44 if( t_oop != NULL && t_oop->is_instance_field() ) { 44 if( t_oop != NULL && t_oop->is_known_instance_field() ) {
45 int iid = t_oop->instance_id(); 45 int iid = t_oop->instance_id();
46 int index = C->get_alias_index(t_oop); 46 int index = C->get_alias_index(t_oop);
47 int offset = t_oop->offset(); 47 int offset = t_oop->offset();
48 phi = new (C,region->req()) PhiNode(region, type, NULL, iid, index, offset); 48 phi = new (C,region->req()) PhiNode(region, type, NULL, iid, index, offset);
49 } else { 49 } else {
2683 if( dom_lca( exit, u_ctrl ) != exit ) continue; 2683 if( dom_lca( exit, u_ctrl ) != exit ) continue;
2684 // protect against stride not being a constant 2684 // protect against stride not being a constant
2685 if( !cle->stride_is_con() ) continue; 2685 if( !cle->stride_is_con() ) continue;
2686 // Hit! Refactor use to use the post-incremented tripcounter. 2686 // Hit! Refactor use to use the post-incremented tripcounter.
2687 // Compute a post-increment tripcounter. 2687 // Compute a post-increment tripcounter.
2688 Node *opaq = new (C, 2) Opaque2Node( cle->incr() ); 2688 Node *opaq = new (C, 2) Opaque2Node( C, cle->incr() );
2689 register_new_node( opaq, u_ctrl ); 2689 register_new_node( opaq, u_ctrl );
2690 Node *neg_stride = _igvn.intcon(-cle->stride_con()); 2690 Node *neg_stride = _igvn.intcon(-cle->stride_con());
2691 set_ctrl(neg_stride, C->root()); 2691 set_ctrl(neg_stride, C->root());
2692 Node *post = new (C, 3) AddINode( opaq, neg_stride); 2692 Node *post = new (C, 3) AddINode( opaq, neg_stride);
2693 register_new_node( post, u_ctrl ); 2693 register_new_node( post, u_ctrl );

mercurial