1378 SafePointScalarObjectNode* res = (SafePointScalarObjectNode*)Node::clone();
1379 sosn_map->Insert((void*)this, (void*)res);
1380 return res;
1381 }
1382
1383
1384 #ifndef PRODUCT
1385 void SafePointScalarObjectNode::dump_spec(outputStream *st) const {
1386 st->print(" # fields@[%d..%d]", first_index(),
1387 first_index() + n_fields() - 1);
1388 }
1389
1390 #endif
1391
1392 //=============================================================================
1393 uint AllocateNode::size_of() const { return sizeof(*this); }
1394
1395 AllocateNode::AllocateNode(Compile* C, const TypeFunc *atype,
1396 Node *ctrl, Node *mem, Node *abio,
1397 Node *size, Node *klass_node,
1398 Node* initial_test, ValueTypeNode* value_node)
1399 : CallNode(atype, NULL, TypeRawPtr::BOTTOM)
1400 {
1401 init_class_id(Class_Allocate);
1402 init_flags(Flag_is_macro);
1403 _is_scalar_replaceable = false;
1404 _is_non_escaping = false;
1405 _is_allocation_MemBar_redundant = false;
1406 Node *topnode = C->top();
1407
1408 init_req( TypeFunc::Control , ctrl );
1409 init_req( TypeFunc::I_O , abio );
1410 init_req( TypeFunc::Memory , mem );
1411 init_req( TypeFunc::ReturnAdr, topnode );
1412 init_req( TypeFunc::FramePtr , topnode );
1413 init_req( AllocSize , size);
1414 init_req( KlassNode , klass_node);
1415 init_req( InitialTest , initial_test);
1416 init_req( ALength , topnode);
1417 init_req( ValueNode , value_node);
1418 C->add_macro_node(this);
|
1378 SafePointScalarObjectNode* res = (SafePointScalarObjectNode*)Node::clone();
1379 sosn_map->Insert((void*)this, (void*)res);
1380 return res;
1381 }
1382
1383
1384 #ifndef PRODUCT
1385 void SafePointScalarObjectNode::dump_spec(outputStream *st) const {
1386 st->print(" # fields@[%d..%d]", first_index(),
1387 first_index() + n_fields() - 1);
1388 }
1389
1390 #endif
1391
1392 //=============================================================================
1393 uint AllocateNode::size_of() const { return sizeof(*this); }
1394
1395 AllocateNode::AllocateNode(Compile* C, const TypeFunc *atype,
1396 Node *ctrl, Node *mem, Node *abio,
1397 Node *size, Node *klass_node,
1398 Node* initial_test, ValueTypeBaseNode* value_node)
1399 : CallNode(atype, NULL, TypeRawPtr::BOTTOM)
1400 {
1401 init_class_id(Class_Allocate);
1402 init_flags(Flag_is_macro);
1403 _is_scalar_replaceable = false;
1404 _is_non_escaping = false;
1405 _is_allocation_MemBar_redundant = false;
1406 Node *topnode = C->top();
1407
1408 init_req( TypeFunc::Control , ctrl );
1409 init_req( TypeFunc::I_O , abio );
1410 init_req( TypeFunc::Memory , mem );
1411 init_req( TypeFunc::ReturnAdr, topnode );
1412 init_req( TypeFunc::FramePtr , topnode );
1413 init_req( AllocSize , size);
1414 init_req( KlassNode , klass_node);
1415 init_req( InitialTest , initial_test);
1416 init_req( ALength , topnode);
1417 init_req( ValueNode , value_node);
1418 C->add_macro_node(this);
|