#include <inliningdb.hpp>
Inheritance diagram for InliningDatabase:
Static Public Member Functions | |
static char * | default_directory () |
static void | set_directory (char *dir) |
static char * | directory () |
static int | file_out_all () |
static bool | file_out (nmethod *nm, outputStream *index_st=NULL) |
static int | file_out (klassOop klass) |
static RScope * | file_in (char *file_name) |
static RScope * | file_in (LookupKey *outer, LookupKey *inner=NULL) |
static char * | mangle_name (char *str) |
static char * | unmangle_name (char *str) |
static void | reset_lookup_table () |
static void | add_lookup_entry (LookupKey *outer, LookupKey *inner=NULL) |
static bool | lookup (LookupKey *outer, LookupKey *inner=NULL) |
static RScope * | lookup_and_remove (LookupKey *outer, LookupKey *inner=NULL) |
static RScope * | select_and_remove (bool *end_of_table) |
static void | load_index_file () |
static void | oops_do (void f(oop *)) |
Static Private Member Functions | |
static char * | selector_string (symbolOop selector) |
static char * | method_string (methodOop method) |
static char * | klass_string (klassOop klass) |
static RScope * | file_in_from (FILE *stream) |
static void | local_file_out_all (nmethod *nm) |
static void | local_file_out_klass (nmethod *nm) |
static char * | compute_file_name (LookupKey *outer, LookupKey *inner, bool create_directories) |
static char * | index_file_name () |
static void | allocate_table (unsigned int size) |
static unsigned int | index_for (LookupKey *outer, LookupKey *inner) |
static unsigned int | next_index (unsigned int index) |
Static Private Attributes | |
static int | local_number_of_nmethods_written = 0 |
static klassOop | local_klass = NULL |
static char * | _directory = NULL |
static outputStream * | index_st = NULL |
static InliningDatabaseKey * | table = NULL |
static unsigned int | table_size = 0 |
static unsigned int | table_size_mask = 0 |
static unsigned int | table_no = 0 |
Definition at line 28 of file inliningdb.hpp.
Definition at line 664 of file inliningdb.cpp.
References allocate_table(), assert, outputStream::cr(), FreeHeap(), index_for(), InliningDatabaseKey::inner, K, next_index(), InliningDatabaseKey::outer, outputStream::print(), LookupKey::print(), outputStream::print_cr(), std, table, table_no, and table_size.
Referenced by file_out(), load_index_file(), and PRIM_DECL_2().
Here is the call graph for this function:
void InliningDatabase::allocate_table | ( | unsigned int | size | ) | [static, private] |
Definition at line 650 of file inliningdb.cpp.
References NEW_C_HEAP_ARRAY, outputStream::print_cr(), std, table, table_no, table_size, and table_size_mask.
Referenced by add_lookup_entry().
Here is the call graph for this function:
char * InliningDatabase::compute_file_name | ( | LookupKey * | outer, | |
LookupKey * | inner, | |||
bool | create_directories | |||
) | [static, private] |
Definition at line 127 of file inliningdb.cpp.
References check_directory(), directory(), LookupKey::klass(), klass_string(), mangle_name(), LookupKey::method(), method_string(), NEW_RESOURCE_ARRAY, LookupKey::selector(), and selector_string().
Referenced by file_in(), and file_out().
Here is the call graph for this function:
char * InliningDatabase::default_directory | ( | ) | [static] |
char * InliningDatabase::directory | ( | ) | [static] |
Definition at line 38 of file inliningdb.cpp.
References _directory, and default_directory().
Referenced by compute_file_name(), index_file_name(), and PRIM_DECL_0().
Here is the call graph for this function:
Definition at line 544 of file inliningdb.cpp.
References compute_file_name(), outputStream::cr(), file_in(), LookupKey::print(), outputStream::print(), and std.
Here is the call graph for this function:
RScope * InliningDatabase::file_in | ( | char * | file_name | ) | [static] |
Definition at line 532 of file inliningdb.cpp.
References file_in_from().
Referenced by file_in(), lookup_and_remove(), PRIM_DECL_1(), and select_and_remove().
Here is the call graph for this function:
RScope * InliningDatabase::file_in_from | ( | FILE * | stream | ) | [static, private] |
Definition at line 514 of file inliningdb.cpp.
References GrowableArray< E >::at(), and create_rscope().
Referenced by file_in().
Here is the call graph for this function:
int InliningDatabase::file_out | ( | klassOop | klass | ) | [static] |
Definition at line 507 of file inliningdb.cpp.
References local_file_out_klass(), local_klass, and local_number_of_nmethods_written.
Here is the call graph for this function:
bool InliningDatabase::file_out | ( | nmethod * | nm, | |
outputStream * | index_st = NULL | |||
) | [static] |
Definition at line 170 of file inliningdb.cpp.
References add_lookup_entry(), compute_file_name(), outputStream::cr(), index_st, fileStream::is_open(), outputStream::print_cr(), std, and uncommon.
Referenced by local_file_out_all(), local_file_out_klass(), and PRIM_DECL_1().
Here is the call graph for this function:
int InliningDatabase::file_out_all | ( | ) | [static] |
Definition at line 739 of file inliningdb.cpp.
References outputStream::cr(), index_file_name(), load_index_file(), local_file_out_all(), local_number_of_nmethods_written, InliningDatabaseKey::outer, LookupKey::print_inlining_database_on(), reset_lookup_table(), table, and table_size.
Referenced by PRIM_DECL_0().
Here is the call graph for this function:
char * InliningDatabase::index_file_name | ( | ) | [static, private] |
Definition at line 386 of file inliningdb.cpp.
References check_directory(), directory(), and NEW_RESOURCE_ARRAY.
Referenced by file_out_all(), and load_index_file().
Here is the call graph for this function:
unsigned int InliningDatabase::index_for | ( | LookupKey * | outer, | |
LookupKey * | inner | |||
) | [inline, static, private] |
Definition at line 612 of file inliningdb.cpp.
References hash(), memOopDesc::identity_hash(), LookupKey::klass(), LookupKey::selector(), and table_size_mask.
Referenced by add_lookup_entry(), lookup(), and lookup_and_remove().
Here is the call graph for this function:
char * InliningDatabase::klass_string | ( | klassOop | klass | ) | [static, private] |
Definition at line 117 of file inliningdb.cpp.
References stringStream::as_string(), klassOopDesc::klass_part(), and Klass::print_name_on().
Referenced by compute_file_name().
Here is the call graph for this function:
void InliningDatabase::load_index_file | ( | ) | [static] |
Definition at line 457 of file inliningdb.cpp.
References add_lookup_entry(), index_file_name(), LookupKey::is_block_type(), outputStream::print_cr(), scan_key(), and std.
Referenced by file_out_all(), and main().
Here is the call graph for this function:
void InliningDatabase::local_file_out_all | ( | nmethod * | nm | ) | [static, private] |
Definition at line 379 of file inliningdb.cpp.
References file_out(), and local_number_of_nmethods_written.
Referenced by file_out_all().
Here is the call graph for this function:
void InliningDatabase::local_file_out_klass | ( | nmethod * | nm | ) | [static, private] |
Definition at line 498 of file inliningdb.cpp.
References file_out(), local_klass, and local_number_of_nmethods_written.
Referenced by file_out().
Here is the call graph for this function:
Definition at line 706 of file inliningdb.cpp.
References index_for(), next_index(), table, and table_no.
Referenced by lookupCache::lookup(), and cacheElement::verify().
Here is the call graph for this function:
RScope * InliningDatabase::lookup_and_remove | ( | LookupKey * | outer, | |
LookupKey * | inner = NULL | |||
) | [static] |
Definition at line 719 of file inliningdb.cpp.
References file_in(), index_for(), next_index(), InliningDatabaseKey::set_deleted(), table, and table_no.
Referenced by lookupCache::cache_miss_lookup().
Here is the call graph for this function:
char * InliningDatabase::mangle_name | ( | char * | str | ) | [static] |
Definition at line 49 of file inliningdb.cpp.
References get_unsigned_bitfield(), NEW_RESOURCE_ARRAY, quote, and quote_string.
Referenced by compute_file_name(), and PRIM_DECL_1().
Here is the call graph for this function:
char * InliningDatabase::method_string | ( | methodOop | method | ) | [static, private] |
Definition at line 111 of file inliningdb.cpp.
References stringStream::as_string(), and methodOopDesc::print_inlining_database_on().
Referenced by compute_file_name().
Here is the call graph for this function:
unsigned int InliningDatabase::next_index | ( | unsigned int | index | ) | [inline, static, private] |
Definition at line 620 of file inliningdb.cpp.
References table_size_mask.
Referenced by add_lookup_entry(), lookup(), and lookup_and_remove().
void InliningDatabase::oops_do | ( | void | f(oop *) | ) | [static] |
Definition at line 733 of file inliningdb.cpp.
References table, and table_size.
Referenced by Universe::oops_do().
void InliningDatabase::reset_lookup_table | ( | ) | [static] |
Definition at line 624 of file inliningdb.cpp.
References FreeHeap(), table, table_no, table_size, and table_size_mask.
Referenced by file_out_all().
Here is the call graph for this function:
RScope * InliningDatabase::select_and_remove | ( | bool * | end_of_table | ) | [static] |
Definition at line 634 of file inliningdb.cpp.
References file_in(), InliningDatabaseKey::set_deleted(), table, table_no, and table_size.
Referenced by PRIM_DECL_0().
Here is the call graph for this function:
char * InliningDatabase::selector_string | ( | symbolOop | selector | ) | [static, private] |
Definition at line 105 of file inliningdb.cpp.
References stringStream::as_string(), and symbolOopDesc::print_symbol_on().
Referenced by compute_file_name().
Here is the call graph for this function:
void InliningDatabase::set_directory | ( | char * | dir | ) | [static] |
char * InliningDatabase::unmangle_name | ( | char * | str | ) | [static] |
Definition at line 72 of file inliningdb.cpp.
References assert, NEW_RESOURCE_ARRAY, and quote.
Referenced by PRIM_DECL_1().
char * InliningDatabase::_directory = NULL [static, private] |
outputStream * InliningDatabase::index_st = NULL [static, private] |
klassOop InliningDatabase::local_klass = NULL [static, private] |
int InliningDatabase::local_number_of_nmethods_written = 0 [static, private] |
Definition at line 39 of file inliningdb.hpp.
Referenced by file_out(), file_out_all(), local_file_out_all(), and local_file_out_klass().
InliningDatabaseKey * InliningDatabase::table = NULL [static, private] |
Definition at line 53 of file inliningdb.hpp.
Referenced by add_lookup_entry(), allocate_table(), file_out_all(), lookup(), lookup_and_remove(), oops_do(), reset_lookup_table(), and select_and_remove().
unsigned int InliningDatabase::table_no = 0 [static, private] |
Definition at line 56 of file inliningdb.hpp.
Referenced by add_lookup_entry(), allocate_table(), lookup(), lookup_and_remove(), reset_lookup_table(), and select_and_remove().
unsigned int InliningDatabase::table_size = 0 [static, private] |
Definition at line 54 of file inliningdb.hpp.
Referenced by add_lookup_entry(), allocate_table(), file_out_all(), oops_do(), reset_lookup_table(), and select_and_remove().
unsigned int InliningDatabase::table_size_mask = 0 [static, private] |
Definition at line 55 of file inliningdb.hpp.
Referenced by allocate_table(), index_for(), next_index(), and reset_lookup_table().