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) {
|