Lines Matching refs:method

63     ArtMethod* method,  in MethodExited()  argument
67 DCHECK_EQ(method->GetInterfaceMethodIfProxy(kRuntimePointerSize)->GetReturnTypePrimitive(), in MethodExited()
72 MethodExited(thread, this_object, method, dex_pc, frame, v); in MethodExited()
78 ArtMethod* method, in FieldWritten() argument
85 FieldWritten(thread, this_object, method, dex_pc, field, v); in FieldWritten()
143 ArtMethod* method = frame.method_; in PopFramesTo() local
148 LOG(INFO) << "Popping for unwind " << method->PrettyMethod(); in PopFramesTo()
150 if (!method->IsRuntimeMethod() && !frame.interpreter_entry_) { in PopFramesTo()
151 instrumentation_->MethodUnwindEvent(self_, frame.this_object_, method, dex_pc); in PopFramesTo()
203 for (ArtMethod& method : klass->GetMethods(kRuntimePointerSize)) { in InstallStubsForClass()
204 InstallStubsForMethod(&method); in InstallStubsForClass()
209 static void UpdateEntrypoints(ArtMethod* method, const void* quick_code) in UpdateEntrypoints() argument
220 method->SetEntryPointFromQuickCompiledCode(quick_code); in UpdateEntrypoints()
223 bool Instrumentation::NeedDebugVersionFor(ArtMethod* method) const in NeedDebugVersionFor()
228 return (runtime->GetRuntimeCallbacks()->MethodNeedsDebugVersion(method) || in NeedDebugVersionFor()
230 !method->IsNative() && in NeedDebugVersionFor()
231 !method->IsProxyMethod(); in NeedDebugVersionFor()
234 void Instrumentation::InstallStubsForMethod(ArtMethod* method) { in InstallStubsForMethod() argument
235 if (!method->IsInvokable() || method->IsProxyMethod()) { in InstallStubsForMethod()
247 if ((LIKELY(well_known_proxy_init != nullptr) && UNLIKELY(method == well_known_proxy_init)) || in InstallStubsForMethod()
248 UNLIKELY(method->IsConstructor() && in InstallStubsForMethod()
249 method->GetDeclaringClass()->DescriptorEquals("Ljava/lang/reflect/Proxy;"))) { in InstallStubsForMethod()
256 bool is_class_initialized = method->GetDeclaringClass()->IsInitialized(); in InstallStubsForMethod()
258 if ((forced_interpret_only_ || IsDeoptimized(method)) && !method->IsNative()) { in InstallStubsForMethod()
260 } else if (is_class_initialized || !method->IsStatic() || method->IsConstructor()) { in InstallStubsForMethod()
261 new_quick_code = GetCodeForInvoke(method); in InstallStubsForMethod()
266 if ((interpreter_stubs_installed_ || forced_interpret_only_ || IsDeoptimized(method)) && in InstallStubsForMethod()
267 !method->IsNative()) { in InstallStubsForMethod()
273 if (is_class_initialized || !method->IsStatic() || method->IsConstructor()) { in InstallStubsForMethod()
278 } else if (NeedDebugVersionFor(method)) { in InstallStubsForMethod()
284 new_quick_code = class_linker->GetQuickOatCodeFor(method); in InstallStubsForMethod()
291 UpdateEntrypoints(method, new_quick_code); in InstallStubsForMethod()
911 void Instrumentation::UpdateMethodsCodeImpl(ArtMethod* method, const void* quick_code) { in UpdateMethodsCodeImpl() argument
916 if ((interpreter_stubs_installed_ || IsDeoptimized(method)) && !method->IsNative()) { in UpdateMethodsCodeImpl()
929 method != jni::DecodeArtMethod(WellKnownClasses::java_lang_reflect_Proxy_init)) { in UpdateMethodsCodeImpl()
931 if (!method->IsNative() && Runtime::Current()->GetJit() != nullptr) { in UpdateMethodsCodeImpl()
934 ProfilingInfo* profiling_info = method->GetProfilingInfo(kRuntimePointerSize); in UpdateMethodsCodeImpl()
946 UpdateEntrypoints(method, new_quick_code); in UpdateMethodsCodeImpl()
949 void Instrumentation::UpdateNativeMethodsCodeToJitCode(ArtMethod* method, const void* quick_code) { in UpdateNativeMethodsCodeToJitCode() argument
957 UpdateEntrypoints(method, new_quick_code); in UpdateNativeMethodsCodeToJitCode()
960 void Instrumentation::UpdateMethodsCode(ArtMethod* method, const void* quick_code) { in UpdateMethodsCode() argument
961 DCHECK(method->GetDeclaringClass()->IsResolved()); in UpdateMethodsCode()
962 UpdateMethodsCodeImpl(method, quick_code); in UpdateMethodsCode()
965 void Instrumentation::UpdateMethodsCodeToInterpreterEntryPoint(ArtMethod* method) { in UpdateMethodsCodeToInterpreterEntryPoint() argument
966 UpdateMethodsCodeImpl(method, GetQuickToInterpreterBridge()); in UpdateMethodsCodeToInterpreterEntryPoint()
969 void Instrumentation::UpdateMethodsCodeForJavaDebuggable(ArtMethod* method, in UpdateMethodsCodeForJavaDebuggable() argument
975 UpdateMethodsCodeImpl(method, quick_code); in UpdateMethodsCodeForJavaDebuggable()
978 bool Instrumentation::AddDeoptimizedMethod(ArtMethod* method) { in AddDeoptimizedMethod() argument
979 if (IsDeoptimizedMethod(method)) { in AddDeoptimizedMethod()
984 deoptimized_methods_.insert(method); in AddDeoptimizedMethod()
988 bool Instrumentation::IsDeoptimizedMethod(ArtMethod* method) { in IsDeoptimizedMethod() argument
989 return deoptimized_methods_.find(method) != deoptimized_methods_.end(); in IsDeoptimizedMethod()
1000 bool Instrumentation::RemoveDeoptimizedMethod(ArtMethod* method) { in RemoveDeoptimizedMethod() argument
1001 auto it = deoptimized_methods_.find(method); in RemoveDeoptimizedMethod()
1013 void Instrumentation::Deoptimize(ArtMethod* method) { in Deoptimize() argument
1014 CHECK(!method->IsNative()); in Deoptimize()
1015 CHECK(!method->IsProxyMethod()); in Deoptimize()
1016 CHECK(method->IsInvokable()); in Deoptimize()
1021 bool has_not_been_deoptimized = AddDeoptimizedMethod(method); in Deoptimize()
1022 CHECK(has_not_been_deoptimized) << "Method " << ArtMethod::PrettyMethod(method) in Deoptimize()
1026 UpdateEntrypoints(method, GetQuickInstrumentationEntryPoint()); in Deoptimize()
1036 void Instrumentation::Undeoptimize(ArtMethod* method) { in Undeoptimize() argument
1037 CHECK(!method->IsNative()); in Undeoptimize()
1038 CHECK(!method->IsProxyMethod()); in Undeoptimize()
1039 CHECK(method->IsInvokable()); in Undeoptimize()
1045 bool found_and_erased = RemoveDeoptimizedMethod(method); in Undeoptimize()
1046 CHECK(found_and_erased) << "Method " << ArtMethod::PrettyMethod(method) in Undeoptimize()
1055 if (method->IsStatic() && !method->IsConstructor() && in Undeoptimize()
1056 !method->GetDeclaringClass()->IsInitialized()) { in Undeoptimize()
1057 UpdateEntrypoints(method, GetQuickResolutionStub()); in Undeoptimize()
1059 const void* quick_code = NeedDebugVersionFor(method) in Undeoptimize()
1061 : class_linker->GetQuickOatCodeFor(method); in Undeoptimize()
1062 UpdateEntrypoints(method, quick_code); in Undeoptimize()
1074 bool Instrumentation::IsDeoptimized(ArtMethod* method) { in IsDeoptimized() argument
1075 DCHECK(method != nullptr); in IsDeoptimized()
1077 return IsDeoptimizedMethod(method); in IsDeoptimized()
1096 ArtMethod* method; in DisableDeoptimization() local
1102 method = BeginDeoptimizedMethod(); in DisableDeoptimization()
1103 CHECK(method != nullptr); in DisableDeoptimization()
1105 Undeoptimize(method); in DisableDeoptimization()
1143 const void* Instrumentation::GetCodeForInvoke(ArtMethod* method) const { in GetCodeForInvoke()
1145 DCHECK(!method->IsProxyMethod()) << method->PrettyMethod(); in GetCodeForInvoke()
1152 const void* code = method->GetEntryPointFromQuickCompiledCodePtrSize(kRuntimePointerSize); in GetCodeForInvoke()
1156 } else if (method->IsNative()) { in GetCodeForInvoke()
1157 return class_linker->GetQuickOatCodeFor(method); in GetCodeForInvoke()
1160 } else if (method->IsNative()) { in GetCodeForInvoke()
1162 return class_linker->GetQuickOatCodeFor(method); in GetCodeForInvoke()
1169 if (!NeedDebugVersionFor(method)) { in GetCodeForInvoke()
1171 result = class_linker->GetQuickOatCodeFor(method); in GetCodeForInvoke()
1177 const void* res = jit->GetCodeCache()->FindCompiledCodeForInstrumentation(method); in GetCodeForInvoke()
1186 const void* Instrumentation::GetQuickCodeFor(ArtMethod* method, PointerSize pointer_size) const { in GetQuickCodeFor() argument
1189 const void* code = method->GetEntryPointFromQuickCompiledCodePtrSize(pointer_size); in GetQuickCodeFor()
1198 return class_linker->GetQuickOatCodeFor(method); in GetQuickCodeFor()
1203 ArtMethod* method, in MethodEnterEventImpl() argument
1205 DCHECK(!method->IsRuntimeMethod()); in MethodEnterEventImpl()
1212 listener->MethodEntered(thread, thiz, method, dex_pc); in MethodEnterEventImpl()
1221 ArtMethod* method, in MethodExitEventImpl() argument
1231 listener->MethodExited(thread, thiz, method, dex_pc, frame, return_value); in MethodExitEventImpl()
1239 ArtMethod* method, in MethodExitEventImpl() argument
1247 if (method->GetInterfaceMethodIfProxy(kRuntimePointerSize)->GetReturnTypePrimitive() != in MethodExitEventImpl()
1251 listener->MethodExited(thread, thiz, method, dex_pc, frame, return_value); in MethodExitEventImpl()
1256 MethodExitEventImpl(thread, thiz.Get(), method, dex_pc, frame, ret); in MethodExitEventImpl()
1264 ArtMethod* method, in MethodUnwindEvent() argument
1272 listener->MethodUnwind(thread, thiz, method, dex_pc); in MethodUnwindEvent()
1280 ArtMethod* method, in DexPcMovedEventImpl() argument
1287 listener->DexPcMoved(thread, thiz, method, dex_pc); in DexPcMovedEventImpl()
1293 ArtMethod* method, in BranchImpl() argument
1298 listener->Branch(thread, method, dex_pc, offset); in BranchImpl()
1313 ArtMethod* method, in FieldReadEventImpl() argument
1321 listener->FieldRead(thread, thiz, method, dex_pc, field); in FieldReadEventImpl()
1328 ArtMethod* method, in FieldWriteEventImpl() argument
1338 listener->FieldWritten(thread, thiz, method, dex_pc, field, field_value); in FieldWriteEventImpl()
1345 listener->FieldWritten(thread, thiz, method, dex_pc, field, val); in FieldWriteEventImpl()
1388 ArtMethod* method, in PushInstrumentationStackFrame() argument
1396 LOG(INFO) << "Entering " << ArtMethod::PrettyMethod(method) << " from PC " in PushInstrumentationStackFrame()
1405 MethodEnterEvent(self, h_this.Get(), method, 0); in PushInstrumentationStackFrame()
1407 MethodUnwindEvent(self, h_this.Get(), method, 0); in PushInstrumentationStackFrame()
1417 h_this.Get(), method, lr, frame_id, interpreter_entry, current_force_deopt_id_); in PushInstrumentationStackFrame()
1421 DeoptimizationMethodType Instrumentation::GetDeoptimizationMethodType(ArtMethod* method) { in GetDeoptimizationMethodType() argument
1422 if (method->IsRuntimeMethod()) { in GetDeoptimizationMethodType()
1425 if (method == Runtime::Current()->GetCalleeSaveMethod( in GetDeoptimizationMethodType()
1429 if (method == Runtime::Current()->GetCalleeSaveMethod( in GetDeoptimizationMethodType()
1520 ArtMethod* method = instrumentation_frame.method_; in PopInstrumentationStackFrame() local
1527 ScopedAssertNoThreadSuspension ants(__FUNCTION__, method->IsRuntimeMethod()); in PopInstrumentationStackFrame()
1528 if (method->IsRuntimeMethod()) { in PopInstrumentationStackFrame()
1529 if (method != Runtime::Current()->GetCalleeSaveMethod( in PopInstrumentationStackFrame()
1548 return_shorty = method->GetInterfaceMethodIfProxy(pointer_size)->GetShorty(&length)[0]; in PopInstrumentationStackFrame()
1569 if (!method->IsRuntimeMethod() && !instrumentation_frame.interpreter_entry_) { in PopInstrumentationStackFrame()
1600 << method->PrettyMethod() in PopInstrumentationStackFrame()
1606 DeoptimizationMethodType deopt_method_type = GetDeoptimizationMethodType(method); in PopInstrumentationStackFrame()
1616 VLOG(deopt) << "Got a deoptimization request on un-deoptimizable " << method->PrettyMethod() in PopInstrumentationStackFrame()
1620 LOG(INFO) << "Returning from " << method->PrettyMethod() in PopInstrumentationStackFrame()