diff options
author | 2024-03-07 16:11:09 +0100 | |
---|---|---|
committer | 2024-03-08 13:36:51 +0000 | |
commit | 0f6befa0f064d482cc252913f46ba8264b7e0384 (patch) | |
tree | d88a7f7c4ce76ada7e6c14b5ab9368eb25d32575 /compiler/optimizing | |
parent | 43e1c7db46d176da1326f354bc69ef38a5f65754 (diff) |
Pass only shorty to `ArtQuickJniCompileMethod()`.
Passing a `dex_file` and `method_idx` makes testing
unnecessarily difficult.
Test: m test-art-host-gtest
Test: testrunner.py --host --optimizing
Bug: 288983053
Change-Id: Ice79423ec568e254547acd4448fb82e2ad11b79c
Diffstat (limited to 'compiler/optimizing')
-rw-r--r-- | compiler/optimizing/code_generator.cc | 5 | ||||
-rw-r--r-- | compiler/optimizing/code_generator.h | 9 | ||||
-rw-r--r-- | compiler/optimizing/optimizing_compiler.cc | 4 |
3 files changed, 8 insertions, 10 deletions
diff --git a/compiler/optimizing/code_generator.cc b/compiler/optimizing/code_generator.cc index c734922268..88bd818b0c 100644 --- a/compiler/optimizing/code_generator.cc +++ b/compiler/optimizing/code_generator.cc @@ -493,11 +493,10 @@ void CodeGenerator::FinishCriticalNativeFrameSetup(size_t out_frame_size, GetMoveResolver()->EmitNativeCode(parallel_move); } -const char* CodeGenerator::GetCriticalNativeShorty(HInvokeStaticOrDirect* invoke, - uint32_t* shorty_len) { +std::string_view CodeGenerator::GetCriticalNativeShorty(HInvokeStaticOrDirect* invoke) { ScopedObjectAccess soa(Thread::Current()); DCHECK(invoke->GetResolvedMethod()->IsCriticalNative()); - return invoke->GetResolvedMethod()->GetShorty(shorty_len); + return invoke->GetResolvedMethod()->GetShortyView(); } void CodeGenerator::GenerateInvokeStaticOrDirectRuntimeCall( diff --git a/compiler/optimizing/code_generator.h b/compiler/optimizing/code_generator.h index c54c96c40f..73059313e2 100644 --- a/compiler/optimizing/code_generator.h +++ b/compiler/optimizing/code_generator.h @@ -597,7 +597,7 @@ class CodeGenerator : public DeletableArenaObject<kArenaAllocCodeGenerator> { template <typename CriticalNativeCallingConventionVisitor, size_t kNativeStackAlignment, - size_t GetCriticalNativeDirectCallFrameSize(const char* shorty, uint32_t shorty_len)> + size_t GetCriticalNativeDirectCallFrameSize(std::string_view shorty)> size_t PrepareCriticalNativeCall(HInvokeStaticOrDirect* invoke) { DCHECK(!invoke->GetLocations()->Intrinsified()); CriticalNativeCallingConventionVisitor calling_convention_visitor( @@ -607,9 +607,8 @@ class CodeGenerator : public DeletableArenaObject<kArenaAllocCodeGenerator> { size_t out_frame_size = RoundUp(calling_convention_visitor.GetStackOffset(), kNativeStackAlignment); if (kIsDebugBuild) { - uint32_t shorty_len; - const char* shorty = GetCriticalNativeShorty(invoke, &shorty_len); - CHECK_EQ(GetCriticalNativeDirectCallFrameSize(shorty, shorty_len), out_frame_size); + std::string_view shorty = GetCriticalNativeShorty(invoke); + CHECK_EQ(GetCriticalNativeDirectCallFrameSize(shorty), out_frame_size); } if (out_frame_size != 0u) { FinishCriticalNativeFrameSetup(out_frame_size, ¶llel_move); @@ -882,7 +881,7 @@ class CodeGenerator : public DeletableArenaObject<kArenaAllocCodeGenerator> { void FinishCriticalNativeFrameSetup(size_t out_frame_size, /*inout*/HParallelMove* parallel_move); - static const char* GetCriticalNativeShorty(HInvokeStaticOrDirect* invoke, uint32_t* shorty_len); + static std::string_view GetCriticalNativeShorty(HInvokeStaticOrDirect* invoke); OptimizingCompilerStats* stats_; diff --git a/compiler/optimizing/optimizing_compiler.cc b/compiler/optimizing/optimizing_compiler.cc index 65e8e51712..0e5de00f97 100644 --- a/compiler/optimizing/optimizing_compiler.cc +++ b/compiler/optimizing/optimizing_compiler.cc @@ -1224,7 +1224,7 @@ CompiledMethod* OptimizingCompiler::JniCompile(uint32_t access_flags, } JniCompiledMethod jni_compiled_method = ArtQuickJniCompileMethod( - compiler_options, access_flags, method_idx, dex_file, &allocator); + compiler_options, dex_file.GetMethodShortyView(method_idx), access_flags, &allocator); MaybeRecordStat(compilation_stats_.get(), MethodCompilationStat::kCompiledNativeStub); ScopedArenaAllocator stack_map_allocator(&arena_stack); // Will hold the stack map. @@ -1291,7 +1291,7 @@ bool OptimizingCompiler::JitCompile(Thread* self, DCHECK_IMPLIES(method->IsCriticalNative(), !runtime->IsJavaDebuggable()); JniCompiledMethod jni_compiled_method = ArtQuickJniCompileMethod( - compiler_options, access_flags, method_idx, *dex_file, &allocator); + compiler_options, dex_file->GetMethodShortyView(method_idx), access_flags, &allocator); std::vector<Handle<mirror::Object>> roots; ArenaSet<ArtMethod*, std::less<ArtMethod*>> cha_single_implementation_list( allocator.Adapter(kArenaAllocCHA)); |