diff src/share/vm/opto/loopopts.cpp @ 17985:4077c61b03a0

8046516: Segmentation fault in JVM (easily reproducible) Summary: Place new nodes on the previous loop exit in reorg_offsets(). Reviewed-by: roland
author kvn
date Thu, 12 Jun 2014 10:15:43 -0700
parents ad51f24671c2
children 52b4284cb496 9e69e8d1c900
line wrap: on
line diff
--- a/src/share/vm/opto/loopopts.cpp	Thu Jun 12 15:57:16 2014 -0700
+++ b/src/share/vm/opto/loopopts.cpp	Thu Jun 12 10:15:43 2014 -0700
@@ -2769,11 +2769,11 @@
       // Hit!  Refactor use to use the post-incremented tripcounter.
       // Compute a post-increment tripcounter.
       Node *opaq = new (C) 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 (C) 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)