< prev index next >

src/hotspot/share/opto/valuetypenode.cpp

Print this page

        

@@ -188,12 +188,11 @@
   int start = jvms->debug_start();
   int end   = jvms->debug_end();
   // Replace safepoint edge by SafePointScalarObjectNode and add field values
   assert(jvms != NULL, "missing JVMS");
   uint first_ind = (sfpt->req() - jvms->scloff());
-  const TypeValueTypePtr* res_type = value_type_ptr();
-  SafePointScalarObjectNode* sobj = new SafePointScalarObjectNode(res_type,
+  SafePointScalarObjectNode* sobj = new SafePointScalarObjectNode(value_ptr(),
 #ifdef ASSERT
                                                                   NULL,
 #endif
                                                                   first_ind, nfields);
   sobj->init_req(0, root);

@@ -325,11 +324,11 @@
         con_type = Type::make_from_constant(constant, /*require_const=*/ true);
       }
       if (con_type != NULL) {
         // Found a constant field value
         value = gvn.transform(gvn.makecon(con_type));
-        if (con_type->isa_valuetypeptr()) {
+        if (con_type->is_valuetypeptr()) {
           // Constant, non-flattened value type field
           value = ValueTypeNode::make_from_oop(gvn, ctl, mem, value, ft->as_value_klass());
         }
       } else {
         // Load field value from memory

@@ -402,11 +401,11 @@
   }
   // Not able to prove that value type is allocated.
   // Emit runtime check that may be folded later.
   assert(!is_allocated(&kit->gvn()), "should not be allocated");
   RegionNode* region = new RegionNode(3);
-  PhiNode* oop = new PhiNode(region, value_type_ptr());
+  PhiNode* oop = new PhiNode(region, value_ptr());
   PhiNode* io  = new PhiNode(region, Type::ABIO);
   PhiNode* mem = new PhiNode(region, Type::MEMORY, TypePtr::BOTTOM);
 
   // Oop is non-NULL, use it
   region->init_req(1, kit->control());

@@ -593,11 +592,11 @@
     IfNode* iff = gvn.transform(new IfNode(ctl, tst, PROB_MAX, COUNT_UNKNOWN))->as_If();
 
     Node* region = new RegionNode(3);
     region->init_req(1, gvn.transform(new IfTrueNode(iff)));
     region->init_req(2, gvn.transform(new IfFalseNode(iff)));
-    Node* new_oop = new PhiNode(region, vt->value_type_ptr());
+    Node* new_oop = new PhiNode(region, vt->value_ptr());
     new_oop->init_req(1, oop);
     new_oop->init_req(2, gvn.zerocon(T_VALUETYPE));
 
     gvn.hash_delete(vt);
     vt->set_oop(gvn.transform(new_oop));

@@ -664,12 +663,12 @@
       if (lbase == NULL || (lbase != base && base != NULL) || loffset != offset) {
         return NULL;
       } else if (base == NULL) {
         // Set base and check if pointer type matches
         base = lbase;
-        const TypeValueTypePtr* vtptr = phase->type(base)->isa_valuetypeptr();
-        if (vtptr == NULL || !vtptr->value_klass()->equals(vk)) {
+        const TypeInstPtr* vtptr = phase->type(base)->isa_instptr();
+        if (vtptr == NULL || !vtptr->klass()->equals(vk)) {
           return NULL;
         }
       }
     } else if (value->isa_ValueType()) {
       // Check value type field load recursively

@@ -915,10 +914,10 @@
 }
 
 ValueTypePtrNode* ValueTypePtrNode::make_from_oop(PhaseGVN& gvn, Node*& ctl, Node* mem, Node* oop) {
   // Create and initialize a ValueTypePtrNode by loading all field
   // values from a heap-allocated version and also save the oop.
-  ciValueKlass* vk = gvn.type(oop)->is_valuetypeptr()->value_klass();
+  ciValueKlass* vk = gvn.type(oop)->value_klass();
   ValueTypePtrNode* vtptr = new ValueTypePtrNode(vk, oop);
   vtptr->load(gvn, ctl, mem, oop, oop, vk);
   return vtptr;
 }
< prev index next >