--- a/hotspot/src/share/vm/opto/stringopts.cpp Thu Mar 24 23:00:27 2011 -0700
+++ b/hotspot/src/share/vm/opto/stringopts.cpp Thu Mar 24 23:04:36 2011 -0700
@@ -969,6 +969,10 @@
// for (int i=0; ; i++)
// if (x <= sizeTable[i])
// return i+1;
+
+ // Add loop predicate first.
+ kit.add_predicate();
+
RegionNode *loop = new (C, 3) RegionNode(3);
loop->init_req(1, kit.control());
kit.gvn().set_type(loop, Type::CONTROL);
@@ -1086,6 +1090,9 @@
// }
{
+ // Add loop predicate first.
+ kit.add_predicate();
+
RegionNode *head = new (C, 3) RegionNode(3);
head->init_req(1, kit.control());
kit.gvn().set_type(head, Type::CONTROL);