Mercurial > hg > truffle
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)