< prev index next >

src/share/vm/c1/c1_GraphBuilder.cpp

Print this page




4003             }
4004             j += t->size();  // long and double take two slots
4005           }
4006           // We don't do CHA here so only inline static and statically bindable methods.
4007           if (target->is_static() || target->can_be_statically_bound()) {
4008             Bytecodes::Code bc = target->is_static() ? Bytecodes::_invokestatic : Bytecodes::_invokevirtual;
4009             if (try_inline(target, /*holder_known*/ true, bc)) {
4010               return true;
4011             }
4012           } else {
4013             print_inlining(target, "not static or statically bindable", /*success*/ false);
4014           }
4015         }
4016       } else {
4017         print_inlining(callee, "MemberName not constant", /*success*/ false);
4018       }
4019     }
4020     break;
4021 
4022   default:
4023     fatal(err_msg("unexpected intrinsic %d: %s", iid, vmIntrinsics::name_at(iid)));
4024     break;
4025   }
4026   set_state(state_before);
4027   return false;
4028 }
4029 
4030 
4031 void GraphBuilder::inline_bailout(const char* msg) {
4032   assert(msg != NULL, "inline bailout msg must exist");
4033   _inline_bailout_msg = msg;
4034 }
4035 
4036 
4037 void GraphBuilder::clear_inline_bailout() {
4038   _inline_bailout_msg = NULL;
4039 }
4040 
4041 
4042 void GraphBuilder::push_root_scope(IRScope* scope, BlockList* bci2block, BlockBegin* start) {
4043   ScopeData* data = new ScopeData(NULL);




4003             }
4004             j += t->size();  // long and double take two slots
4005           }
4006           // We don't do CHA here so only inline static and statically bindable methods.
4007           if (target->is_static() || target->can_be_statically_bound()) {
4008             Bytecodes::Code bc = target->is_static() ? Bytecodes::_invokestatic : Bytecodes::_invokevirtual;
4009             if (try_inline(target, /*holder_known*/ true, bc)) {
4010               return true;
4011             }
4012           } else {
4013             print_inlining(target, "not static or statically bindable", /*success*/ false);
4014           }
4015         }
4016       } else {
4017         print_inlining(callee, "MemberName not constant", /*success*/ false);
4018       }
4019     }
4020     break;
4021 
4022   default:
4023     fatal("unexpected intrinsic %d: %s", iid, vmIntrinsics::name_at(iid));
4024     break;
4025   }
4026   set_state(state_before);
4027   return false;
4028 }
4029 
4030 
4031 void GraphBuilder::inline_bailout(const char* msg) {
4032   assert(msg != NULL, "inline bailout msg must exist");
4033   _inline_bailout_msg = msg;
4034 }
4035 
4036 
4037 void GraphBuilder::clear_inline_bailout() {
4038   _inline_bailout_msg = NULL;
4039 }
4040 
4041 
4042 void GraphBuilder::push_root_scope(IRScope* scope, BlockList* bci2block, BlockBegin* start) {
4043   ScopeData* data = new ScopeData(NULL);


< prev index next >