diff options
author | 2016-02-05 16:51:53 +0000 | |
---|---|---|
committer | 2016-02-05 17:11:54 +0000 | |
commit | b331febbab8e916680faba722cc84b66b84218a3 (patch) | |
tree | 35f985b021e476914bfe91492da23fee218014a7 /runtime/jit/jit_code_cache.h | |
parent | 586996afc905518ed926e4680aab67bedabec9b7 (diff) |
Revert "Revert "Implement on-stack replacement for arm/arm64/x86/x86_64.""
This reverts commit bd89a5c556324062b7d841843b039392e84cfaf4.
Change-Id: I08d190431520baa7fcec8fbdb444519f25ac8d44
Diffstat (limited to 'runtime/jit/jit_code_cache.h')
-rw-r--r-- | runtime/jit/jit_code_cache.h | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/runtime/jit/jit_code_cache.h b/runtime/jit/jit_code_cache.h index 69fc5532c1..048f8d064e 100644 --- a/runtime/jit/jit_code_cache.h +++ b/runtime/jit/jit_code_cache.h @@ -71,7 +71,7 @@ class JitCodeCache { // Number of compilations done throughout the lifetime of the JIT. size_t NumberOfCompilations() REQUIRES(!lock_); - bool NotifyCompilationOf(ArtMethod* method, Thread* self) + bool NotifyCompilationOf(ArtMethod* method, Thread* self, bool osr) SHARED_REQUIRES(Locks::mutator_lock_) REQUIRES(!lock_); @@ -89,7 +89,8 @@ class JitCodeCache { size_t core_spill_mask, size_t fp_spill_mask, const uint8_t* code, - size_t code_size) + size_t code_size, + bool osr) SHARED_REQUIRES(Locks::mutator_lock_) REQUIRES(!lock_); @@ -131,6 +132,10 @@ class JitCodeCache { REQUIRES(!lock_) SHARED_REQUIRES(Locks::mutator_lock_); + OatQuickMethodHeader* LookupOsrMethodHeader(ArtMethod* method) + REQUIRES(!lock_) + SHARED_REQUIRES(Locks::mutator_lock_); + // Remove all methods in our cache that were allocated by 'alloc'. void RemoveMethodsIn(Thread* self, const LinearAlloc& alloc) REQUIRES(!lock_) @@ -187,7 +192,8 @@ class JitCodeCache { size_t core_spill_mask, size_t fp_spill_mask, const uint8_t* code, - size_t code_size) + size_t code_size, + bool osr) REQUIRES(!lock_) SHARED_REQUIRES(Locks::mutator_lock_); @@ -237,8 +243,10 @@ class JitCodeCache { void* data_mspace_ GUARDED_BY(lock_); // Bitmap for collecting code and data. std::unique_ptr<CodeCacheBitmap> live_bitmap_; - // This map holds compiled code associated to the ArtMethod. + // Holds compiled code associated to the ArtMethod. SafeMap<const void*, ArtMethod*> method_code_map_ GUARDED_BY(lock_); + // Holds osr compiled code associated to the ArtMethod. + SafeMap<ArtMethod*, const void*> osr_code_map_ GUARDED_BY(lock_); // ProfilingInfo objects we have allocated. std::vector<ProfilingInfo*> profiling_infos_ GUARDED_BY(lock_); |