967 C->record_for_igvn(size); |
967 C->record_for_igvn(size); |
968 |
968 |
969 // for (int i=0; ; i++) |
969 // for (int i=0; ; i++) |
970 // if (x <= sizeTable[i]) |
970 // if (x <= sizeTable[i]) |
971 // return i+1; |
971 // return i+1; |
|
972 |
|
973 // Add loop predicate first. |
|
974 kit.add_predicate(); |
|
975 |
972 RegionNode *loop = new (C, 3) RegionNode(3); |
976 RegionNode *loop = new (C, 3) RegionNode(3); |
973 loop->init_req(1, kit.control()); |
977 loop->init_req(1, kit.control()); |
974 kit.gvn().set_type(loop, Type::CONTROL); |
978 kit.gvn().set_type(loop, Type::CONTROL); |
975 |
979 |
976 Node *index = new (C, 3) PhiNode(loop, TypeInt::INT); |
980 Node *index = new (C, 3) PhiNode(loop, TypeInt::INT); |
1084 // i = q; |
1088 // i = q; |
1085 // if (i == 0) break; |
1089 // if (i == 0) break; |
1086 // } |
1090 // } |
1087 |
1091 |
1088 { |
1092 { |
|
1093 // Add loop predicate first. |
|
1094 kit.add_predicate(); |
|
1095 |
1089 RegionNode *head = new (C, 3) RegionNode(3); |
1096 RegionNode *head = new (C, 3) RegionNode(3); |
1090 head->init_req(1, kit.control()); |
1097 head->init_req(1, kit.control()); |
1091 kit.gvn().set_type(head, Type::CONTROL); |
1098 kit.gvn().set_type(head, Type::CONTROL); |
1092 Node *i_phi = new (C, 3) PhiNode(head, TypeInt::INT); |
1099 Node *i_phi = new (C, 3) PhiNode(head, TypeInt::INT); |
1093 i_phi->init_req(1, i); |
1100 i_phi->init_req(1, i); |