EM_ProfileAccessInterface Struct Reference

#include <em_profile_access.h>

List of all members.


Detailed Description

A EM interface used to access to profile collectors.


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)
 
Returns:
The counter's limit for entry threshold for a given profile collector.

uint32(* eb_profiler_get_backedge_threshold )(PC_Handle pch)
 
Returns:
The counter's limit for backedge threshold for a given profile collector.

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)
 
Returns:
The maximum value(by frequency) of give instruction.

void(* value_profiler_dump_values )(Method_Profile_Handle mph, std::ostream &os)


Member Data Documentation

EM_PCTYPE(* EM_ProfileAccessInterface.get_pc_type)(EM_Handle _this, PC_Handle pc)

Request profile collector type for specified profile collector handle.

Parameters:
_this - EM instance profile collector belongs to
pc - profile collector handle we interested in
Returns:
The type of profile collector.

Method_Profile_Handle(* EM_ProfileAccessInterface.get_method_profile)(EM_Handle _this, PC_Handle pc, Method_Handle mh)

Request method profile from profile collector.

Parameters:
_this - EM instance profile collector belongs to
pc - profile collector used to collect profile
mh - method we asking profile for
Returns:
Method profile handle, that can be used to access to custom method profile properties with specialized profile collector interface.

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.

Parameters:
_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
Returns:
The handle to profile collector instance.

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.

void*(* EM_ProfileAccessInterface.eb_profiler_get_entry_counter_addr)(Method_Profile_Handle mph)

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.

void*(* EM_ProfileAccessInterface.eb_profiler_get_backedge_counter_addr)(Method_Profile_Handle mph)

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.

char(* EM_ProfileAccessInterface.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.

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.

See also:
eb_profiler_sync_mode_callback()

void(* EM_ProfileAccessInterface.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.

See also:
eb_profiler_is_in_sync_mode()

uint32(* EM_ProfileAccessInterface.eb_profiler_get_entry_threshold)(PC_Handle pch)

Returns:
The counter's limit for entry threshold for a given profile collector.

uint32(* EM_ProfileAccessInterface.eb_profiler_get_backedge_threshold)(PC_Handle pch)

Returns:
The counter's limit for backedge threshold for a given profile collector.

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.

Parameters:
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
Returns:
A handle to access method profile data.

uint32(* EM_ProfileAccessInterface.edge_profiler_get_num_counters)(Method_Profile_Handle mph)

Return number of edge counters in profile.

uint32(* EM_ProfileAccessInterface.edge_profiler_get_checksum)(Method_Profile_Handle mph)

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.

void*(* EM_ProfileAccessInterface.edge_profiler_get_entry_counter_addr)(Method_Profile_Handle mph)

Return the address of entry counter.

uint32(* EM_ProfileAccessInterface.edge_profiler_get_entry_threshold)(PC_Handle pch)

Return the entry threshold for profile collector.

uint32(* EM_ProfileAccessInterface.edge_profiler_get_backedge_threshold)(PC_Handle pch)

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.

Parameters:
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)

Returns:
The maximum value(by frequency) of give instruction.

void(* EM_ProfileAccessInterface.value_profiler_dump_values)(Method_Profile_Handle mph, std::ostream &os)


The documentation for this struct was generated from the following file:

Genereated on Tue Mar 11 19:25:26 2008 by Doxygen.

(c) Copyright 2005, 2008 The Apache Software Foundation or its licensors, as applicable.