src/share/vm/c1/c1_GraphBuilder.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 8022585 Sdiff src/share/vm/c1

src/share/vm/c1/c1_GraphBuilder.cpp

Print this page




4202   compilation()->set_has_unsafe_access(true);
4203 }
4204 
4205 
4206 void GraphBuilder::print_inlining(ciMethod* callee, const char* msg, bool success) {
4207   CompileLog* log = compilation()->log();
4208   if (log != NULL) {
4209     if (success) {
4210       if (msg != NULL)
4211         log->inline_success(msg);
4212       else
4213         log->inline_success("receiver is statically known");
4214     } else {
4215       if (msg != NULL)
4216         log->inline_fail(msg);
4217       else
4218         log->inline_fail("reason unknown");
4219     }
4220   }
4221 
4222   if (!PrintInlining)  return;
4223   CompileTask::print_inlining(callee, scope()->level(), bci(), msg);
4224   if (success && CIPrintMethodCodes) {
4225     callee->print_codes();
4226   }
4227 }
4228 
4229 bool GraphBuilder::append_unsafe_get_and_set_obj(ciMethod* callee, bool is_add) {
4230   if (InlineUnsafeOps) {
4231     Values* args = state()->pop_arguments(callee->arg_size());
4232     BasicType t = callee->return_type()->basic_type();
4233     null_check(args->at(0));
4234     Instruction* offset = args->at(2);
4235 #ifndef _LP64
4236     offset = append(new Convert(Bytecodes::_l2i, offset, as_ValueType(T_INT)));
4237 #endif
4238     Instruction* op = append(new UnsafeGetAndSetObject(t, args->at(1), offset, args->at(3), is_add));
4239     compilation()->set_has_unsafe_access(true);
4240     kill_all();
4241     push(op->type(), op);
4242   }


4202   compilation()->set_has_unsafe_access(true);
4203 }
4204 
4205 
4206 void GraphBuilder::print_inlining(ciMethod* callee, const char* msg, bool success) {
4207   CompileLog* log = compilation()->log();
4208   if (log != NULL) {
4209     if (success) {
4210       if (msg != NULL)
4211         log->inline_success(msg);
4212       else
4213         log->inline_success("receiver is statically known");
4214     } else {
4215       if (msg != NULL)
4216         log->inline_fail(msg);
4217       else
4218         log->inline_fail("reason unknown");
4219     }
4220   }
4221 
4222   if (!PrintInlining && !compilation()->method()->has_option("PrintInlining"))  return;
4223   CompileTask::print_inlining(callee, scope()->level(), bci(), msg);
4224   if (success && CIPrintMethodCodes) {
4225     callee->print_codes();
4226   }
4227 }
4228 
4229 bool GraphBuilder::append_unsafe_get_and_set_obj(ciMethod* callee, bool is_add) {
4230   if (InlineUnsafeOps) {
4231     Values* args = state()->pop_arguments(callee->arg_size());
4232     BasicType t = callee->return_type()->basic_type();
4233     null_check(args->at(0));
4234     Instruction* offset = args->at(2);
4235 #ifndef _LP64
4236     offset = append(new Convert(Bytecodes::_l2i, offset, as_ValueType(T_INT)));
4237 #endif
4238     Instruction* op = append(new UnsafeGetAndSetObject(t, args->at(1), offset, args->at(3), is_add));
4239     compilation()->set_has_unsafe_access(true);
4240     kill_all();
4241     push(op->type(), op);
4242   }
src/share/vm/c1/c1_GraphBuilder.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File