#include <em_profile_access.h>
Public Attributes | |
EM_PCTYPE(* | get_pc_type )(EM_Handle _this, PC_Handle pc) |
Request profile collector type for specified profile collector handle. | |
Method_Profile_Handle(* | get_method_profile )(EM_Handle _this, PC_Handle pc, Method_Handle mh) |
Request method profile from profile collector. | |
PC_Handle(* | get_pc )(EM_Handle _this, EM_PCTYPE profile_type, JIT_Handle jh, EM_JIT_PC_Role jit_role) |
Request profile collector of specified type and role for a JIT. | |
Method_Profile_Handle(* | eb_profiler_create_profile )(PC_Handle ph, Method_Handle mh) |
Create new entry-backedge profile for a method. | |
void *(* | eb_profiler_get_entry_counter_addr )(Method_Profile_Handle mph) |
Request the address of entry counter. | |
void *(* | eb_profiler_get_backedge_counter_addr )(Method_Profile_Handle mph) |
Request the address of backedge counter. | |
char(* | eb_profiler_is_in_sync_mode )(PC_Handle pch) |
Check if entry-backedge profiler is configured to work in synchronous mode In synchronous mode JIT is responsible to emit checks that counter's limit is reached for both entry and backedge counters. | |
void(* | eb_profiler_sync_mode_callback )(Method_Profile_Handle mph) |
If profile collector is in sync mode JIT must call this method every time the counter limit is reached. | |
uint32(* | eb_profiler_get_entry_threshold )(PC_Handle pch) |
| |
uint32(* | eb_profiler_get_backedge_threshold )(PC_Handle pch) |
| |
Method_Profile_Handle(* | edge_profiler_create_profile )(PC_Handle ph, Method_Handle mh, uint32 numEdgeCounters, uint32 *counterKeys, uint32 checkSum) |
Create an edge profile for a method. | |
uint32(* | edge_profiler_get_num_counters )(Method_Profile_Handle mph) |
Return number of edge counters in profile. | |
uint32(* | edge_profiler_get_checksum )(Method_Profile_Handle mph) |
Return profile checksum. | |
void *(* | edge_profiler_get_counter_addr )(Method_Profile_Handle mph, uint32 key) |
Return the address of counter associated with key. | |
void *(* | edge_profiler_get_entry_counter_addr )(Method_Profile_Handle mph) |
Return the address of entry counter. | |
uint32(* | edge_profiler_get_entry_threshold )(PC_Handle pch) |
Return the entry threshold for profile collector. | |
uint32(* | edge_profiler_get_backedge_threshold )(PC_Handle pch) |
Return the edge threshold for profile collector. | |
Method_Profile_Handle(* | value_profiler_create_profile )(PC_Handle pch, Method_Handle mh, uint32 numKeys, uint32 *keys) |
Create an value profile for a method. | |
void(* | value_profiler_add_value )(Method_Profile_Handle mph, uint32 instructionKey, POINTER_SIZE_INT valueToAdd) |
Update frequency or insert the new value of given instruction. | |
POINTER_SIZE_INT(* | value_profiler_get_top_value )(Method_Profile_Handle mph, uint32 instructionKey) |
| |
void(* | value_profiler_dump_values )(Method_Profile_Handle mph, std::ostream &os) |
EM_PCTYPE(* EM_ProfileAccessInterface.get_pc_type)(EM_Handle _this, PC_Handle pc) |
Request profile collector type for specified profile collector handle.
_this | - EM instance profile collector belongs to | |
pc | - profile collector handle we interested in |
Method_Profile_Handle(* EM_ProfileAccessInterface.get_method_profile)(EM_Handle _this, PC_Handle pc, Method_Handle mh) |
Request method profile from profile collector.
_this | - EM instance profile collector belongs to | |
pc | - profile collector used to collect profile | |
mh | - method we asking profile for |
PC_Handle(* EM_ProfileAccessInterface.get_pc)(EM_Handle _this, EM_PCTYPE profile_type, JIT_Handle jh, EM_JIT_PC_Role jit_role) |
Request profile collector of specified type and role for a JIT.
_this | - EM instance profile collector belongs to | |
profile_type | - the type of profile collector | |
jh | - handle to JIT, profile collector created for | |
jit_role | - the role of JIT: the user or supplier of profile |
Method_Profile_Handle(* EM_ProfileAccessInterface.eb_profiler_create_profile)(PC_Handle ph, Method_Handle mh) |
Create new entry-backedge profile for a method.
Only one profile per method can be created for a single profile collector instance.
Request the address of entry counter.
JIT configured to generate entry-backedge profile must emit the code to increment this counter every time a method called.
Request the address of backedge counter.
JIT configured to generate entry-backedge profile must emit the code to increment this counter every time any backedge in a method is called.
Check if entry-backedge profiler is configured to work in synchronous mode In synchronous mode JIT is responsible to emit checks that counter's limit is reached for both entry and backedge counters.
If limit is reached eb_profiler_sync_mode_callback
must be called directly from managed code. In asynchronous mode counters checks are done by profile collector in a separate thread.
If profile collector is in sync
mode JIT must call this method every time the counter limit is reached.
Method_Profile_Handle(* EM_ProfileAccessInterface.edge_profiler_create_profile)(PC_Handle ph, Method_Handle mh, uint32 numEdgeCounters, uint32 *counterKeys, uint32 checkSum) |
Create an edge profile for a method.
Only one profile per method can be created for a single profile collector instance.
ph | - edge profile collector handle | |
mh | - method handle to create profile for | |
numEdgeCounters | - number of edge counters in a method | |
counterKeys | - the keys, or numbers, will be associated with each counter. The key must be used to access to counter value | |
checksum | - profile checksum |
Return number of edge counters in profile.
Return profile checksum.
void*(* EM_ProfileAccessInterface.edge_profiler_get_counter_addr)(Method_Profile_Handle mph, uint32 key) |
Return the address of counter associated with key.
Return the address of entry counter.
Return the entry threshold for profile collector.
Return the edge threshold for profile collector.
Method_Profile_Handle(* EM_ProfileAccessInterface.value_profiler_create_profile)(PC_Handle pch, Method_Handle mh, uint32 numKeys, uint32 *keys) |
Create an value profile for a method.
Only one profile per method can be created for a single profile collector instance.
pch | - value profile collector handle | |
mh | - method handle to create profile for | |
numKeys | - number of instructions to be profiled | |
keys | - the keys, or numbers, will be associated with each instruction. The key must be used to access to instruction value |
void(* EM_ProfileAccessInterface.value_profiler_add_value)(Method_Profile_Handle mph, uint32 instructionKey, POINTER_SIZE_INT valueToAdd) |
Update frequency or insert the new value of given instruction.
POINTER_SIZE_INT(* EM_ProfileAccessInterface.value_profiler_get_top_value)(Method_Profile_Handle mph, uint32 instructionKey) |
void(* EM_ProfileAccessInterface.value_profiler_dump_values)(Method_Profile_Handle mph, std::ostream &os) |
Genereated on Tue Mar 11 19:25:31 2008 by Doxygen.
(c) Copyright 2005, 2008 The Apache Software Foundation or its licensors, as applicable.