InliningDatabase Class Reference

#include <inliningdb.hpp>

Inheritance diagram for InliningDatabase:

Inheritance graph
[legend]
Collaboration diagram for InliningDatabase:

Collaboration graph
[legend]
List of all members.

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 outputStreamindex_st = NULL
static InliningDatabaseKeytable = NULL
static unsigned int table_size = 0
static unsigned int table_size_mask = 0
static unsigned int table_no = 0

Detailed Description

Definition at line 28 of file inliningdb.hpp.


Member Function Documentation

void InliningDatabase::add_lookup_entry ( LookupKey outer,
LookupKey inner = NULL 
) [static]

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]

Definition at line 30 of file inliningdb.cpp.

Referenced by directory().

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:

RScope * InliningDatabase::file_in ( LookupKey outer,
LookupKey inner = NULL 
) [static]

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:

bool InliningDatabase::lookup ( LookupKey outer,
LookupKey inner = NULL 
) [static]

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]

Definition at line 34 of file inliningdb.cpp.

References _directory.

Referenced by PRIM_DECL_1().

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().


Member Data Documentation

char * InliningDatabase::_directory = NULL [static, private]

Definition at line 50 of file inliningdb.hpp.

Referenced by directory(), and set_directory().

outputStream * InliningDatabase::index_st = NULL [static, private]

Definition at line 52 of file inliningdb.hpp.

Referenced by file_out().

klassOop InliningDatabase::local_klass = NULL [static, private]

Definition at line 41 of file inliningdb.hpp.

Referenced by file_out(), and local_file_out_klass().

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().


The documentation for this class was generated from the following files:
Generated on Mon Oct 9 14:00:09 2006 for Strongtalk VM by  doxygen 1.4.7