[interp] Fix interp logging (#17636)
[mono-project.git] / mono / mini / tiered.h
blob91e91da77c6f0c4b80bb63a84440c4d101a2c825
1 #ifdef ENABLE_EXPERIMENT_TIERED
3 #ifndef __MONO_MINI_TIERED_H__
4 #define __MONO_MINI_TIERED_H__
6 #define TIERED_PATCH_KIND_INTERP 0
7 #define TIERED_PATCH_KIND_JIT 1
8 #define TIERED_PATCH_KIND_NUM 2
10 typedef struct {
11 int hotness;
12 gboolean promoted;
13 } MiniTieredCounter;
15 typedef struct {
16 gint64 methods_promoted;
17 } MiniTieredStats;
19 typedef struct {
20 MonoDomain *domain;
21 MonoMethod *target_method;
22 int tier_level;
23 } MiniTieredPatchPointContext;
25 typedef gboolean (*CallsitePatcher)(MiniTieredPatchPointContext *context, gpointer patchsite);
27 void
28 mini_tiered_init (void);
30 void
31 mini_tiered_inc (MonoDomain *domain, MonoMethod *method, MiniTieredCounter *tcnt, int level);
33 void
34 mini_tiered_record_callsite (gpointer callsite, MonoMethod *target_method, int level);
36 void
37 mini_tiered_register_callsite_patcher (CallsitePatcher func, int level);
39 #endif /* __MONO_MINI_TIERED_H__ */
40 #endif /* ENABLE_EXPERIMENT_TIERED */