JIT baseline: trigger optimized compilation on hotness threshold.
- Add a new hotness count in the ProfilingInfo to not conflict with
interpreter hotness which may use it for OSR.
- Add a baseline flag in the OatQuickMethodHeader to identify baseline
compiled methods.
- Add a -Xusetieredjit flag to experiment and test.
Bug: 119800099
Test: test.py with Xusetieredjit to true
Change-Id: I8512853f869f1312e3edc60bf64413dee9143c52
diff --git a/runtime/jit/profiling_info.h b/runtime/jit/profiling_info.h
index d4dc498..ada1036 100644
--- a/runtime/jit/profiling_info.h
+++ b/runtime/jit/profiling_info.h
@@ -126,9 +126,18 @@
(current_inline_uses_ > 0);
}
+ static constexpr MemberOffset BaselineHotnessCountOffset() {
+ return MemberOffset(OFFSETOF_MEMBER(ProfilingInfo, baseline_hotness_count_));
+ }
+
private:
ProfilingInfo(ArtMethod* method, const std::vector<uint32_t>& entries);
+ // Hotness count for methods compiled with the JIT baseline compiler. Once
+ // a threshold is hit (currentily the maximum value of uint16_t), we will
+ // JIT compile optimized the method.
+ uint16_t baseline_hotness_count_;
+
// Method this profiling info is for.
// Not 'const' as JVMTI introduces obsolete methods that we implement by creating new ArtMethods.
// See JitCodeCache::MoveObsoleteMethod.