< prev index next >

src/hotspot/share/opto/macro.cpp

Print this page
rev 48562 : [mq]: heap23


1224   }
1225 
1226   process_users_of_allocation(boxing);
1227 
1228 #ifndef PRODUCT
1229   if (PrintEliminateAllocations) {
1230     tty->print("++++ Eliminated: %d ", boxing->_idx);
1231     boxing->method()->print_short_name(tty);
1232     tty->cr();
1233   }
1234 #endif
1235 
1236   return true;
1237 }
1238 
1239 //---------------------------set_eden_pointers-------------------------
1240 void PhaseMacroExpand::set_eden_pointers(Node* &eden_top_adr, Node* &eden_end_adr) {
1241   if (UseTLAB) {                // Private allocation: load from TLS
1242     Node* thread = transform_later(new ThreadLocalNode());
1243     int tlab_top_offset = in_bytes(JavaThread::tlab_top_offset());
1244     int tlab_end_offset = in_bytes(JavaThread::tlab_end_offset());
1245     eden_top_adr = basic_plus_adr(top()/*not oop*/, thread, tlab_top_offset);
1246     eden_end_adr = basic_plus_adr(top()/*not oop*/, thread, tlab_end_offset);
1247   } else {                      // Shared allocation: load from globals
1248     CollectedHeap* ch = Universe::heap();
1249     address top_adr = (address)ch->top_addr();
1250     address end_adr = (address)ch->end_addr();
1251     eden_top_adr = makecon(TypeRawPtr::make(top_adr));
1252     eden_end_adr = basic_plus_adr(eden_top_adr, end_adr - top_adr);
1253   }
1254 }
1255 
1256 
1257 Node* PhaseMacroExpand::make_load(Node* ctl, Node* mem, Node* base, int offset, const Type* value_type, BasicType bt) {
1258   Node* adr = basic_plus_adr(base, offset);
1259   const TypePtr* adr_type = adr->bottom_type()->is_ptr();
1260   Node* value = LoadNode::make(_igvn, ctl, mem, adr, adr_type, value_type, bt, MemNode::unordered);
1261   transform_later(value);
1262   return value;
1263 }
1264 
1265 
1266 Node* PhaseMacroExpand::make_store(Node* ctl, Node* mem, Node* base, int offset, Node* value, BasicType bt) {




1224   }
1225 
1226   process_users_of_allocation(boxing);
1227 
1228 #ifndef PRODUCT
1229   if (PrintEliminateAllocations) {
1230     tty->print("++++ Eliminated: %d ", boxing->_idx);
1231     boxing->method()->print_short_name(tty);
1232     tty->cr();
1233   }
1234 #endif
1235 
1236   return true;
1237 }
1238 
1239 //---------------------------set_eden_pointers-------------------------
1240 void PhaseMacroExpand::set_eden_pointers(Node* &eden_top_adr, Node* &eden_end_adr) {
1241   if (UseTLAB) {                // Private allocation: load from TLS
1242     Node* thread = transform_later(new ThreadLocalNode());
1243     int tlab_top_offset = in_bytes(JavaThread::tlab_top_offset());
1244     int tlab_current_end_offset = in_bytes(JavaThread::tlab_current_end_offset());
1245     eden_top_adr = basic_plus_adr(top()/*not oop*/, thread, tlab_top_offset);
1246     eden_end_adr = basic_plus_adr(top()/*not oop*/, thread, tlab_current_end_offset);
1247   } else {                      // Shared allocation: load from globals
1248     CollectedHeap* ch = Universe::heap();
1249     address top_adr = (address)ch->top_addr();
1250     address end_adr = (address)ch->end_addr();
1251     eden_top_adr = makecon(TypeRawPtr::make(top_adr));
1252     eden_end_adr = basic_plus_adr(eden_top_adr, end_adr - top_adr);
1253   }
1254 }
1255 
1256 
1257 Node* PhaseMacroExpand::make_load(Node* ctl, Node* mem, Node* base, int offset, const Type* value_type, BasicType bt) {
1258   Node* adr = basic_plus_adr(base, offset);
1259   const TypePtr* adr_type = adr->bottom_type()->is_ptr();
1260   Node* value = LoadNode::make(_igvn, ctl, mem, adr, adr_type, value_type, bt, MemNode::unordered);
1261   transform_later(value);
1262   return value;
1263 }
1264 
1265 
1266 Node* PhaseMacroExpand::make_store(Node* ctl, Node* mem, Node* base, int offset, Node* value, BasicType bt) {


< prev index next >