hotspot/src/share/vm/opto/macro.cpp
changeset 33589 7cbd1b2c139b
parent 33077 55f205e96044
child 33638 ef49ed90010b
equal deleted inserted replaced
33580:c2d95df2c54e 33589:7cbd1b2c139b
   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);