< prev index next >

src/share/vm/opto/macro.cpp

Print this page




1218     if (alloc->is_AllocateArray())
1219       tty->print_cr("++++ Eliminated: %d AllocateArray", alloc->_idx);
1220     else
1221       tty->print_cr("++++ Eliminated: %d Allocate", alloc->_idx);
1222   }
1223 #endif
1224 
1225   return true;
1226 }
1227 
1228 bool PhaseMacroExpand::eliminate_boxing_node(CallStaticJavaNode *boxing) {
1229   // EA should remove all uses of non-escaping boxing node.
1230   if (!C->eliminate_boxing() || boxing->proj_out(TypeFunc::Parms) != NULL) {
1231     return false;
1232   }
1233 
1234   assert(boxing->result_cast() == NULL, "unexpected boxing node result");
1235 
1236   extract_call_projections(boxing);
1237 
1238   const TypeTuple* r = boxing->tf()->range();
1239   assert(r->cnt() > TypeFunc::Parms, "sanity");
1240   const TypeInstPtr* t = r->field_at(TypeFunc::Parms)->isa_instptr();
1241   assert(t != NULL, "sanity");
1242 
1243   CompileLog* log = C->log();
1244   if (log != NULL) {
1245     log->head("eliminate_boxing type='%d'",
1246               log->identify(t->klass()));
1247     JVMState* p = boxing->jvms();
1248     while (p != NULL) {
1249       log->elem("jvms bci='%d' method='%d'", p->bci(), log->identify(p->method()));
1250       p = p->caller();
1251     }
1252     log->tail("eliminate_boxing");
1253   }
1254 
1255   process_users_of_allocation(boxing);
1256 
1257 #ifndef PRODUCT
1258   if (PrintEliminateAllocations) {




1218     if (alloc->is_AllocateArray())
1219       tty->print_cr("++++ Eliminated: %d AllocateArray", alloc->_idx);
1220     else
1221       tty->print_cr("++++ Eliminated: %d Allocate", alloc->_idx);
1222   }
1223 #endif
1224 
1225   return true;
1226 }
1227 
1228 bool PhaseMacroExpand::eliminate_boxing_node(CallStaticJavaNode *boxing) {
1229   // EA should remove all uses of non-escaping boxing node.
1230   if (!C->eliminate_boxing() || boxing->proj_out(TypeFunc::Parms) != NULL) {
1231     return false;
1232   }
1233 
1234   assert(boxing->result_cast() == NULL, "unexpected boxing node result");
1235 
1236   extract_call_projections(boxing);
1237 
1238   const TypeTuple* r = boxing->tf()->range_sig();
1239   assert(r->cnt() > TypeFunc::Parms, "sanity");
1240   const TypeInstPtr* t = r->field_at(TypeFunc::Parms)->isa_instptr();
1241   assert(t != NULL, "sanity");
1242 
1243   CompileLog* log = C->log();
1244   if (log != NULL) {
1245     log->head("eliminate_boxing type='%d'",
1246               log->identify(t->klass()));
1247     JVMState* p = boxing->jvms();
1248     while (p != NULL) {
1249       log->elem("jvms bci='%d' method='%d'", p->bci(), log->identify(p->method()));
1250       p = p->caller();
1251     }
1252     log->tail("eliminate_boxing");
1253   }
1254 
1255   process_users_of_allocation(boxing);
1256 
1257 #ifndef PRODUCT
1258   if (PrintEliminateAllocations) {


< prev index next >