< prev index next >

src/hotspot/share/opto/valuetypenode.cpp

Print this page

        

*** 910,925 **** #endif } } } ! ValueTypePtrNode* ValueTypePtrNode::make_from_value_type(PhaseGVN& gvn, ValueTypeNode* vt) { ! ValueTypePtrNode* vtptr = new ValueTypePtrNode(vt->value_klass(), vt->get_oop()); for (uint i = Oop+1; i < vt->req(); i++) { vtptr->init_req(i, vt->in(i)); } ! return gvn.transform(vtptr)->as_ValueTypePtr(); } ValueTypePtrNode* ValueTypePtrNode::make_from_call(GraphKit* kit, ciValueKlass* vk, CallNode* call) { ValueTypePtrNode* vtptr = new ValueTypePtrNode(vk, kit->zerocon(T_VALUETYPE)); vtptr->initialize(kit, call, vk); --- 910,926 ---- #endif } } } ! ValueTypePtrNode* ValueTypePtrNode::make_from_value_type(GraphKit* kit, ValueTypeNode* vt, bool deoptimize_on_exception) { ! Node* oop = vt->allocate(kit, deoptimize_on_exception)->get_oop(); ! ValueTypePtrNode* vtptr = new ValueTypePtrNode(vt->value_klass(), oop); for (uint i = Oop+1; i < vt->req(); i++) { vtptr->init_req(i, vt->in(i)); } ! return kit->gvn().transform(vtptr)->as_ValueTypePtr(); } ValueTypePtrNode* ValueTypePtrNode::make_from_call(GraphKit* kit, ciValueKlass* vk, CallNode* call) { ValueTypePtrNode* vtptr = new ValueTypePtrNode(vk, kit->zerocon(T_VALUETYPE)); vtptr->initialize(kit, call, vk);
*** 930,936 **** // Create and initialize a ValueTypePtrNode by loading all field // values from a heap-allocated version and also save the oop. ciValueKlass* vk = kit->gvn().type(oop)->value_klass(); ValueTypePtrNode* vtptr = new ValueTypePtrNode(vk, oop); vtptr->load(kit, oop, oop, vk); ! return vtptr; } --- 931,937 ---- // Create and initialize a ValueTypePtrNode by loading all field // values from a heap-allocated version and also save the oop. ciValueKlass* vk = kit->gvn().type(oop)->value_klass(); ValueTypePtrNode* vtptr = new ValueTypePtrNode(vk, oop); vtptr->load(kit, oop, oop, vk); ! return kit->gvn().transform(vtptr)->as_ValueTypePtr(); }
< prev index next >