Lines Matching defs:base

348       Node* base = get_addp_base(n);
349 PointsToNode* ptn_base = ptnode_adr(base->_idx);
352 // Note, non-oop fields will have only base edges in Connection
494 Node* base = get_addp_base(adr);
495 if (base->Opcode() == Op_LoadP &&
496 base->in(MemNode::Address)->is_AddP()) {
497 adr = base->in(MemNode::Address);
569 Node* base = get_addp_base(n);
570 PointsToNode* ptn_base = ptnode_adr(base->_idx);
571 assert(ptn_base != NULL, "field's base should be registered");
867 // Set AddP's base (Allocate) as not scalar replaceable since
868 // pointer to the base (with offset) is passed as argument.
926 // as base since objects escape states are not related.
1220 // related field nodes (same base and offset).
1228 // Add reference from jobj to field and from field to jobj (field's base).
1269 // related field nodes (same base and offset).
1282 // with the same offset and base (since they may reference the same field).
1284 PointsToNode* base = i.get();
1285 add_fields_to_worklist(field, base);
1286 // Check if the base was source object of arraycopy and go over arraycopy's
1289 if (base->arraycopy_src()) {
1290 for (UseIterator j(base); j.has_next(); j.next()) {
1295 if (abase->arraycopy_dst() && abase != base) {
1307 void ConnectionGraph::add_fields_to_worklist(FieldNode* field, PointsToNode* base) {
1309 if (base->is_LocalVar()) {
1310 for (UseIterator j(base); j.has_next(); j.next()) {
1323 assert(base->is_JavaObject(), "sanity");
1326 (base != phantom_obj) &&
1328 (base != null_obj)) {
1329 for (EdgeIterator i(base); i.has_next(); i.next()) {
1334 assert(base->arraycopy_dst(), "sanity");
1354 PointsToNode* base = i.get();
1355 if (base->is_JavaObject()) {
1357 if (base->ideal_node()->is_Allocate())
1359 assert(base == null_obj, "only NULL ptr base expected here");
1439 Node* base = get_addp_base(field->ideal_node());
1440 assert(adr_type->isa_rawptr() && base->is_Proj() &&
1441 (base->in(0) == alloc),"unexpected pointer type");
1596 PointsToNode* base = i.get();
1599 // this field's base by now.
1600 if (base->is_JavaObject() && base != jobj) {
1603 base->set_scalar_replaceable(false);
1639 Node* base = get_addp_base(n);
1640 PointsToNode* ptn = ptnode_adr(base->_idx);
1657 PointsToNode* base = i.get();
1658 tty->print_cr("----------field has next base---------------------");
1659 base->dump();
1660 if (base->is_JavaObject() && (base != phantom_obj) && (base != null_obj)) {
1661 tty->print_cr("----------base has fields-------------------------");
1662 for (EdgeIterator j(base); j.has_next(); j.next()) {
1665 tty->print_cr("----------base has references---------------------");
1666 for (UseIterator j(base); j.has_next(); j.next()) {
2101 // AddP ( base == address )
2108 // AddP ( base == address )
2116 // AddP ( base == top )
2132 // AddP ( base == address )
2139 // AddP ( base == top )
2144 // AddP ( base == address )
2151 // AddP ( base == address )
2153 Node *base = addp->in(AddPNode::Base);
2154 if (base->uncast()->is_top()) { // The AddP case #3 and #6.
2155 base = addp->in(AddPNode::Address);
2156 while (base->is_AddP()) {
2158 assert(base->in(AddPNode::Base)->uncast()->is_top(), "expected unsafe access address only");
2159 base = base->in(AddPNode::Address);
2161 Node* uncast_base = base->uncast();
2168 return base;
2177 assert(addp->in(AddPNode::Base) == n, "expecting the same base");
2185 // as AddP's base CheckCastPP (LocalVar).
2215 bool ConnectionGraph::split_AddP(Node *addp, Node *base) {
2217 const TypeOopPtr *base_t = igvn->type(base)->isa_oopptr();
2224 assert(addp->in(AddPNode::Address)->is_Proj(), "base of raw address must be result projection from allocation");
2260 set_map(addp, get_map(base->_idx));
2261 // Set addp's Base and Address to 'base'.
2269 if (abase != base) {
2271 addp->set_req(AddPNode::Base, base);
2273 addp->set_req(AddPNode::Address, base);
2415 if (toop->base() != Type::AnyPtr &&
2841 Node *base = get_map(jobj->idx()); // CheckCastPP node
2842 if (!split_AddP(n, base)) continue; // wrong type from dead path