#include <stack>#include <vector>#include "unistd.h"#include "sys/types.h"#include "sys/stat.h"#include "fcntl.h"#include "sys/mman.h"#include "stdio.h"#include <string>#include <ext/hash_map>#include <map>#include <_G_config.h>#include "stdlib.h"#include "time.h"#include "cg_instru_lib.h"

Go to the source code of this file.
| typedef hash_map<char*,PU_PROFILE,ptrhash> HASH_MAP |
Definition at line 78 of file cg_instru_lib.cxx.
| typedef PU_PROFILE_INFO* PU_PROFILE |
Definition at line 64 of file cg_instru_lib.cxx.
| typedef stack<char *> STACK_NAME |
Definition at line 80 of file cg_instru_lib.cxx.
| typedef stack<PU_PROFILE> STACK_PROFILE |
Definition at line 79 of file cg_instru_lib.cxx.
Definition at line 212 of file cg_instru_lib.cxx.
References PU_PROFILE_INFO::_counter, _FREQ::_value, current_srcfile_pu_name, have_finish, and PU_PROFILE_INFO_TABLE.
Definition at line 241 of file cg_instru_lib.cxx.
References PU_PROFILE_INFO::_edge_sum, PU_PROFILE_INFO::_instr_count, PU_PROFILE_INFO::_ld_count, _write_File_Header(), _write_pu_data(), _write_Pu_Header(), _write_Str_Header(), close, current_Pu_file_offset, current_PU_header_offset, current_str_table_offset, FB_FREQ_size, Fb_Hdr_size, fclose(), fd, file_header_offset, Free_Space(), have_finish, i, instru_lib_error(), INT, lseek, map_addr, MAP_FAILED, MAP_FILE, mmap(), munmap(), output_file_name, output_file_size, profile_offset, pu_counter, Pu_file_offset, Pu_Hdr_size, PU_header_offset, PU_PROFILE_INFO_TABLE, SEEK_SET, size, str_table_offset, str_table_size, strlen(), TNV_item_size, TRUE, and write.
Referenced by __profile_init(), __stride_profile_pu_init(), and __value_profile_pu_init().
| void __profile_init | ( | char * | output_file, | |
| PROFILE_PHASE | phasenum | |||
| ) |
Definition at line 158 of file cg_instru_lib.cxx.
References __profile_finalize(), atexit(), fd, have_finish, have_open_output_file, instru_lib_error(), INT, INT32, lt, malloc, NULL, O_CREAT, O_RDWR, O_TRUNC, output_file_name, prof_phase, sprintf(), strcpy, strlen(), time, TRUE, and unlink.
Referenced by __stride_profile_pu_init(), and __value_profile_pu_init().
| char* __profile_pu_init | ( | char * | srcfile_pu_name, | |
| INT | check_sum | |||
| ) |
Definition at line 186 of file cg_instru_lib.cxx.
References PU_PROFILE_INFO::_counter, PU_PROFILE_INFO::_edge_sum, _FREQ_size, PU_PROFILE_INFO::_has_alloc, calloc(), current_srcfile_pu_name, EDGE_PROFILE_ALLOC, have_finish, NULL, and PU_PROFILE_INFO_TABLE.
| void __stride_profile_invoke | ( | PU_PROFILE_INFO * | pu_hdr, | |
| UINT32 | instr_id, | |||
| UINT64 | value | |||
| ) |
Definition at line 672 of file cg_instru_lib.cxx.
References FB_TNV::_address, FB_TNV::_clear_counter, FB_TNV::_counters, FB_TNV::_exec_counter, FB_TNV::_flag, FB_TNV::_id, PU_PROFILE_INFO::_srd_prof_tnv_table, FB_TNV::_stride_steps, FB_TNV::_values, FB_TNV::_zero_std_counter, a, b, fprintf(), i, INT, tmp, and UINT64.
| PU_PROFILE_INFO* __stride_profile_pu_init | ( | char * | outputfile, | |
| char * | srcfile_pu_name, | |||
| PROFILE_PHASE | phase, | |||
| UINT32 | instr_count | |||
| ) |
Definition at line 625 of file cg_instru_lib.cxx.
References __profile_finalize(), __profile_init(), PU_PROFILE_INFO::_has_alloc, PU_PROFILE_INFO::_ld_count, PU_PROFILE_INFO::_srd_prof_tnv_table, atexit(), calloc(), current_srcfile_pu_name, fopen, have_open_output_file, instru_lib_error(), NULL, PU_PROFILE_INFO_TABLE, STRIDE_PROFILE_ALLOC, TNV_item_size, and TRUE.
| void __value_profile_invoke | ( | PU_PROFILE_INFO * | pu_hdr, | |
| UINT32 | instr_id, | |||
| UINT64 | value | |||
| ) |
Definition at line 472 of file cg_instru_lib.cxx.
References FB_TNV::_clear_counter, FB_TNV::_counters, FB_TNV::_exec_counter, FB_TNV::_flag, FB_TNV::_id, PU_PROFILE_INFO::_sum_count, PU_PROFILE_INFO::_val_prof_tnv_table, FB_TNV::_values, a, b, fprintf(), i, INT, tmp, and UINT64.
| PU_PROFILE_INFO* __value_profile_pu_init | ( | char * | outputfile, | |
| char * | srcfile_pu_name, | |||
| PROFILE_PHASE | phase, | |||
| UINT32 | instr_count | |||
| ) |
Definition at line 426 of file cg_instru_lib.cxx.
References __profile_finalize(), __profile_init(), PU_PROFILE_INFO::_has_alloc, PU_PROFILE_INFO::_instr_count, PU_PROFILE_INFO::_val_prof_tnv_table, atexit(), calloc(), fopen, have_open_output_file, instru_lib_error(), NULL, PU_PROFILE_INFO_TABLE, TNV_item_size, TRUE, and VALUE_PROFILE_ALLOC.
| static void _write_edge_profile | ( | PU_PROFILE_INFO * | pu_info | ) | [static] |
Definition at line 396 of file cg_instru_lib.cxx.
References PU_PROFILE_INFO::_counter, PU_PROFILE_INFO::_edge_sum, FB_FREQ::_type, _FREQ::_value, FB_FREQ::_value, current_offset, FB_FREQ_size, FB_FREQ_TYPE_EXACT, float, INT, map_addr, and memcpy.
Referenced by _write_pu_data().
Definition at line 301 of file cg_instru_lib.cxx.
References current_offset, current_PU_header_offset, current_str_table_offset, Fb_Hdr_size, Fb_Hdr::fb_ident, Fb_Hdr::fb_profile_offset, Fb_Hdr::fb_pu_hdr_ent_size, Fb_Hdr::fb_pu_hdr_num, Fb_Hdr::fb_pu_hdr_offset, Fb_Hdr::fb_str_table_offset, Fb_Hdr::fb_str_table_size, Fb_Hdr::fb_version, file_header, i, INSTR_CURRENT, map_addr, memcpy, Fb_Hdr::phase_num, prof_phase, pu_counter, Pu_Hdr_size, and str_table_size.
Referenced by __profile_finalize().
Definition at line 382 of file cg_instru_lib.cxx.
References _write_edge_profile(), _write_srd_TNV_items_profile(), _write_TNV_items_profile(), i, info, and PU_PROFILE_INFO_TABLE.
Referenced by __profile_finalize().
Definition at line 332 of file cg_instru_lib.cxx.
References PU_PROFILE_INFO::_edge_sum, PU_PROFILE_INFO::_instr_count, PU_PROFILE_INFO::_ld_count, PU_PROFILE_INFO::_sum_count, current_offset, current_Pu_file_offset, FB_FREQ_size, i, info, INT, map_addr, memcpy, Pu_Hdr::pu_br_offset, Pu_Hdr::pu_call_offset, Pu_Hdr::pu_cgoto_offset, Pu_Hdr::pu_cgoto_target_offset, Pu_Hdr::pu_checksum, Pu_Hdr::pu_edge_offset, Pu_Hdr::pu_file_offset, Pu_Hdr_size, Pu_Hdr::pu_instr_count, Pu_Hdr::pu_instr_exec_count, Pu_Hdr::pu_inv_offset, Pu_Hdr::pu_ld_count, Pu_Hdr::pu_loop_offset, Pu_Hdr::pu_name_index, Pu_Hdr::pu_num_br_entries, Pu_Hdr::pu_num_call_entries, Pu_Hdr::pu_num_cgoto_entries, Pu_Hdr::pu_num_edge_entries, Pu_Hdr::pu_num_inv_entries, Pu_Hdr::pu_num_loop_entries, Pu_Hdr::pu_num_scircuit_entries, Pu_Hdr::pu_num_switch_entries, PU_PROFILE_INFO_TABLE, Pu_Hdr::pu_scircuit_offset, Pu_Hdr::pu_stride_offset, Pu_Hdr::pu_switch_offset, Pu_Hdr::pu_switch_target_offset, Pu_Hdr::pu_value_offset, strlen(), and TNV_item_size.
Referenced by __profile_finalize().
| static void _write_srd_TNV_items_profile | ( | PU_PROFILE_INFO * | pu_info | ) | [static] |
Definition at line 817 of file cg_instru_lib.cxx.
References PU_PROFILE_INFO::_ld_count, PU_PROFILE_INFO::_srd_prof_tnv_table, current_offset, INT, map_addr, memcpy, and TNV_item_size.
Referenced by _write_pu_data().
Definition at line 321 of file cg_instru_lib.cxx.
References current_offset, i, map_addr, memcpy, PU_PROFILE_INFO_TABLE, and strlen().
Referenced by __profile_finalize().
| static void _write_TNV_items_profile | ( | PU_PROFILE_INFO * | pu_info | ) | [static] |
Definition at line 605 of file cg_instru_lib.cxx.
References PU_PROFILE_INFO::_instr_count, PU_PROFILE_INFO::_val_prof_tnv_table, current_offset, INT, map_addr, memcpy, and TNV_item_size.
Referenced by _write_pu_data().
Definition at line 409 of file cg_instru_lib.cxx.
References free(), i, and PU_PROFILE_INFO_TABLE.
Referenced by __profile_finalize().
| void instru_lib_error | ( | const char * | fmt, | |
| const char * | msg = "" | |||
| ) | [static] |
Definition at line 417 of file cg_instru_lib.cxx.
References exit(), and printf().
Referenced by __profile_finalize(), __profile_init(), __stride_profile_pu_init(), and __value_profile_pu_init().
const INT32 _FREQ_size = sizeof( _FREQ ) [static] |
PU_PROFILE cur_pu_profile [static] |
Definition at line 124 of file cg_instru_lib.cxx.
INT32 current_offset = 0 [static] |
Definition at line 111 of file cg_instru_lib.cxx.
Referenced by _write_edge_profile(), _write_File_Header(), _write_Pu_Header(), _write_srd_TNV_items_profile(), _write_Str_Header(), _write_TNV_items_profile(), and Compute_Split_Regions().
INT32 current_Pu_file_offset = 0 [static] |
Definition at line 110 of file cg_instru_lib.cxx.
Referenced by __profile_finalize(), and _write_Pu_Header().
INT32 current_PU_header_offset = 0 [static] |
Definition at line 108 of file cg_instru_lib.cxx.
Referenced by __profile_finalize(), and _write_File_Header().
char* current_pu_name = NULL [static] |
Definition at line 116 of file cg_instru_lib.cxx.
PU_PROFILE_INFO* current_pu_profile_info = NULL [static] |
Definition at line 122 of file cg_instru_lib.cxx.
char* current_srcfile_pu_name = NULL [static] |
Definition at line 120 of file cg_instru_lib.cxx.
Referenced by __profile_edge(), __profile_pu_init(), and __stride_profile_pu_init().
INT32 current_str_table_offset = 0 [static] |
Definition at line 109 of file cg_instru_lib.cxx.
Referenced by __profile_finalize(), and _write_File_Header().
PU_PROFILE_INFO* edge_counter = NULL [static] |
Definition at line 101 of file cg_instru_lib.cxx.
const INT32 FB_FREQ_size = sizeof( FB_FREQ ) [static] |
Definition at line 90 of file cg_instru_lib.cxx.
Referenced by __profile_finalize(), _write_edge_profile(), and _write_Pu_Header().
const INT32 Fb_Hdr_size = sizeof( Fb_Hdr ) [static] |
Definition at line 89 of file cg_instru_lib.cxx.
Referenced by __profile_finalize(), and _write_File_Header().
Definition at line 95 of file cg_instru_lib.cxx.
Referenced by __profile_finalize(), __profile_init(), _f_opn(), _fio_du_open(), _ft_stopen(), _mcleanup(), _nl_load_domain(), _S2UB(), _S2UO(), _S2UZ(), ascii_usage(), assertCanWriteDir(), c_common_pch_pragma(), check_for_whirl(), Cif_Close(), Cif_Getfiledir(), Cif_Getpos(), Cif_Getrecord(), Cif_Getunitdir(), Cif_Open(), Cif_Putrecord(), Cif_Recgroup(), Cif_Setpos(), cif_VerifyCanWrite(), close_file(), compile_resource_file(), create_file(), IPA_LNO_WRITE_FILE::Create_Temp_File(), create_temp_file(), create_temp_file_name(), create_unique_file(), DEFUN(), directory_is_writable(), Dump_Rta_Scns(), dup2(), ELF_object::ELF_object(), ELF_object64::ELF_object64(), extract_archive_member(), f77_map_datapool_(), f77_map_datapool_pad_(), fgetcf90_(), File_Info::File_Info(), gcov_open(), get_temp_file(), gs_read(), gs_write(), internal_fix(), ir_b_create_map(), load_symbols(), lockf_(), Machine_Done(), main(), make_temp_file(), mkstemps(), mpw_open(), nlist(), open_arith_file(), open_file(), open_intrinsics_file(), print_buffered_messages(), read_file(), separate_debug_file_exists(), spawn_script(), start_fixer(), t_runc(), usdumplockf90_(), usdumplockf90_8_(), usdumpsemaf90_(), usdumpsemaf90_8_(), write_strlist(), and write_unitdir().
INT32 file_header_offset = 0 [static] |
BOOL have_finish = FALSE [static] |
Definition at line 118 of file cg_instru_lib.cxx.
Referenced by __profile_edge(), __profile_finalize(), __profile_init(), and __profile_pu_init().
BOOL have_open_output_file = FALSE [static] |
Definition at line 117 of file cg_instru_lib.cxx.
Referenced by __profile_init(), __stride_profile_pu_init(), and __value_profile_pu_init().
char* map_addr = NULL [static] |
Definition at line 114 of file cg_instru_lib.cxx.
Referenced by __profile_finalize(), _write_edge_profile(), _write_File_Header(), _write_Pu_Header(), _write_srd_TNV_items_profile(), _write_Str_Header(), _write_TNV_items_profile(), elfunmap(), and read_file().
char* output_file_name = NULL [static] |
Definition at line 113 of file cg_instru_lib.cxx.
Referenced by __profile_finalize(), __profile_init(), Perform_Alias_Class_Annotation(), Phase_Init(), and WN_INSTRUMENT_WALKER::Tree_Walk().
INT32 output_file_size = 0 [static] |
PU_PROFILE_INFO* prev_pu_profile_info = NULL [static] |
Definition at line 123 of file cg_instru_lib.cxx.
char* prev_srcfile_pu_name = NULL [static] |
Definition at line 121 of file cg_instru_lib.cxx.
PROFILE_PHASE prof_phase [static] |
Definition at line 102 of file cg_instru_lib.cxx.
Referenced by __profile_init(), and _write_File_Header().
INT32 profile_offset = 0 [static] |
INT32 pu_counter = 0 [static] |
Definition at line 97 of file cg_instru_lib.cxx.
Referenced by __profile_finalize(), and _write_File_Header().
INT32 Pu_file_offset = 0 [static] |
const INT32 Pu_Hdr_size = sizeof( Pu_Hdr ) [static] |
Definition at line 88 of file cg_instru_lib.cxx.
Referenced by __profile_finalize(), _write_File_Header(), and _write_Pu_Header().
INT32 PU_header_offset = 0 [static] |
STACK_NAME PU_NAME [static] |
Definition at line 86 of file cg_instru_lib.cxx.
Definition at line 96 of file cg_instru_lib.cxx.
Referenced by Auto_Parallelization(), CG_PU_Initialize(), Lnoptimizer(), main(), and Print_whirl_pu_from_bits().
const INT32 PU_PROFILE_INFO_size = sizeof( PU_PROFILE_INFO ) [static] |
Definition at line 92 of file cg_instru_lib.cxx.
HASH_MAP PU_PROFILE_INFO_TABLE [static] |
Definition at line 83 of file cg_instru_lib.cxx.
Referenced by __profile_edge(), __profile_finalize(), __profile_pu_init(), __stride_profile_pu_init(), __value_profile_pu_init(), _write_pu_data(), _write_Pu_Header(), _write_Str_Header(), and Free_Space().
STACK_PROFILE PU_PROFILE_STACK [static] |
Definition at line 85 of file cg_instru_lib.cxx.
char* src_fname = NULL [static] |
Definition at line 115 of file cg_instru_lib.cxx.
INT32 str_table_offset = 0 [static] |
INT32 str_table_size = 0 [static] |
Definition at line 107 of file cg_instru_lib.cxx.
Referenced by __profile_finalize(), and _write_File_Header().
const INT32 TNV_item_size = sizeof( FB_TNV ) [static] |
Definition at line 93 of file cg_instru_lib.cxx.
Referenced by __profile_finalize(), __stride_profile_pu_init(), __value_profile_pu_init(), _write_Pu_Header(), _write_srd_TNV_items_profile(), and _write_TNV_items_profile().
1.5.6