src/share/vm/opto/loopopts.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
*** old/src/share/vm/opto/loopopts.cpp Wed Jun 11 18:23:20 2014
--- new/src/share/vm/opto/loopopts.cpp Wed Jun 11 18:23:20 2014
*** 2769,2783 ****
--- 2769,2783 ----
// update is right at the bottom, uses of of the loop middle are ok.
if (dom_lca(exit, u_ctrl) != exit) continue;
// Hit! Refactor use to use the post-incremented tripcounter.
// Compute a post-increment tripcounter.
Node *opaq = new Opaque2Node( C, cle->incr() );
! register_new_node( opaq, u_ctrl );
! register_new_node(opaq, exit);
Node *neg_stride = _igvn.intcon(-cle->stride_con());
set_ctrl(neg_stride, C->root());
Node *post = new AddINode( opaq, neg_stride);
! register_new_node( post, u_ctrl );
! register_new_node(post, exit);
_igvn.rehash_node_delayed(use);
for (uint j = 1; j < use->req(); j++) {
if (use->in(j) == phi)
use->set_req(j, post);
}
src/share/vm/opto/loopopts.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File