777 GrowableArray <SafePointNode *> safepoints_done; |
777 GrowableArray <SafePointNode *> safepoints_done; |
778 |
778 |
779 ciKlass* klass = NULL; |
779 ciKlass* klass = NULL; |
780 ciInstanceKlass* iklass = NULL; |
780 ciInstanceKlass* iklass = NULL; |
781 int nfields = 0; |
781 int nfields = 0; |
782 int array_base; |
782 int array_base = 0; |
783 int element_size; |
783 int element_size = 0; |
784 BasicType basic_elem_type; |
784 BasicType basic_elem_type = T_ILLEGAL; |
785 ciType* elem_type; |
785 ciType* elem_type = NULL; |
786 |
786 |
787 Node* res = alloc->result_cast(); |
787 Node* res = alloc->result_cast(); |
788 assert(res == NULL || res->is_CheckCastPP(), "unexpected AllocateNode result"); |
788 assert(res == NULL || res->is_CheckCastPP(), "unexpected AllocateNode result"); |
789 const TypeOopPtr* res_type = NULL; |
789 const TypeOopPtr* res_type = NULL; |
790 if (res != NULL) { // Could be NULL when there are no users |
790 if (res != NULL) { // Could be NULL when there are no users |
1303 |
1303 |
1304 assert(ctrl != NULL, "must have control"); |
1304 assert(ctrl != NULL, "must have control"); |
1305 // We need a Region and corresponding Phi's to merge the slow-path and fast-path results. |
1305 // We need a Region and corresponding Phi's to merge the slow-path and fast-path results. |
1306 // they will not be used if "always_slow" is set |
1306 // they will not be used if "always_slow" is set |
1307 enum { slow_result_path = 1, fast_result_path = 2 }; |
1307 enum { slow_result_path = 1, fast_result_path = 2 }; |
1308 Node *result_region; |
1308 Node *result_region = NULL; |
1309 Node *result_phi_rawmem; |
1309 Node *result_phi_rawmem = NULL; |
1310 Node *result_phi_rawoop; |
1310 Node *result_phi_rawoop = NULL; |
1311 Node *result_phi_i_o; |
1311 Node *result_phi_i_o = NULL; |
1312 |
1312 |
1313 // The initial slow comparison is a size check, the comparison |
1313 // The initial slow comparison is a size check, the comparison |
1314 // we want to do is a BoolTest::gt |
1314 // we want to do is a BoolTest::gt |
1315 bool always_slow = false; |
1315 bool always_slow = false; |
1316 int tv = _igvn.find_int_con(initial_slow_test, -1); |
1316 int tv = _igvn.find_int_con(initial_slow_test, -1); |