diff options
author | 2022-04-25 14:11:33 +0100 | |
---|---|---|
committer | 2022-04-29 08:17:49 +0000 | |
commit | 123c02bb75e1ddfb8d20bbd6e2e7c62ee64d6772 (patch) | |
tree | 836b792e2563da85c57511391f77f52f5e48a10b /runtime/jit/jit_code_cache.h | |
parent | 1fbfa9b23cd1f0b4e00fd82ea999f9530f18b609 (diff) |
Put queued compilations in sets.
The GC will walk over that set to visit classes of methods being
compiled. This allows removing the creation of jclass whenever a task
gets enqueued.
Test: test.py
Bug: 218444629
Change-Id: I373b07e63c5f7ce71d023cad53904455411f5673
Diffstat (limited to 'runtime/jit/jit_code_cache.h')
-rw-r--r-- | runtime/jit/jit_code_cache.h | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/runtime/jit/jit_code_cache.h b/runtime/jit/jit_code_cache.h index fb861a4d82..a534ba9094 100644 --- a/runtime/jit/jit_code_cache.h +++ b/runtime/jit/jit_code_cache.h @@ -215,7 +215,7 @@ class JitCodeCache { REQUIRES_SHARED(Locks::mutator_lock_) REQUIRES(!Locks::jit_lock_); - void DoneCompiling(ArtMethod* method, Thread* self, CompilationKind compilation_kind) + void DoneCompiling(ArtMethod* method, Thread* self) REQUIRES_SHARED(Locks::mutator_lock_) REQUIRES(!Locks::jit_lock_); @@ -403,6 +403,20 @@ class JitCodeCache { ProfilingInfo* GetProfilingInfo(ArtMethod* method, Thread* self); void ResetHotnessCounter(ArtMethod* method, Thread* self); + void VisitRoots(RootVisitor* visitor); + + // Return whether `method` is being compiled with the given mode. + bool IsMethodBeingCompiled(ArtMethod* method, CompilationKind compilation_kind) + REQUIRES(Locks::jit_lock_); + + // Remove `method` from the list of methods meing compiled with the given mode. + void RemoveMethodBeingCompiled(ArtMethod* method, CompilationKind compilation_kind) + REQUIRES(Locks::jit_lock_); + + // Record that `method` is being compiled with the given mode. + void AddMethodBeingCompiled(ArtMethod* method, CompilationKind compilation_kind) + REQUIRES(Locks::jit_lock_); + private: JitCodeCache(); @@ -492,18 +506,6 @@ class JitCodeCache { REQUIRES(!Locks::jit_lock_) REQUIRES_SHARED(Locks::mutator_lock_); - // Record that `method` is being compiled with the given mode. - void AddMethodBeingCompiled(ArtMethod* method, CompilationKind compilation_kind) - REQUIRES(Locks::jit_lock_); - - // Remove `method` from the list of methods meing compiled with the given mode. - void RemoveMethodBeingCompiled(ArtMethod* method, CompilationKind compilation_kind) - REQUIRES(Locks::jit_lock_); - - // Return whether `method` is being compiled with the given mode. - bool IsMethodBeingCompiled(ArtMethod* method, CompilationKind compilation_kind) - REQUIRES(Locks::jit_lock_); - // Return whether `method` is being compiled in any mode. bool IsMethodBeingCompiled(ArtMethod* method) REQUIRES(Locks::jit_lock_); |