#include "config.h"#include "system.h"#include "rtl.h"#include "tree.h"#include "flags.h"#include "insn-config.h"#include "output.h"#include "regs.h"#include "expr.h"#include "function.h"#include "toplev.h"#include "ggc.h"#include "hard-reg-set.h"#include "basic-block.h"#include "gcov-io.h"#include "target.h"#include "profile.h"#include "libfuncs.h"#include "langhooks.h"#include "gt-profile.h"

Go to the source code of this file.
| #define BB_TO_GCOV_INDEX | ( | bb | ) |
Value:
((bb) == ENTRY_BLOCK_PTR ? 0 \ : ((bb) == EXIT_BLOCK_PTR \ ? last_basic_block + 1 : (bb)->index + 1))
Definition at line 781 of file profile.c.
References __write_gcov_string(), __write_long(), abort, add_noreturn_fake_exit_edges(), alloc_aux_for_edges(), allocate_reg_info(), bb_file, BB_TO_GCOV_INDEX, bbg_file, cleanup_cfg(), CLEANUP_EXPENSIVE, compact_blocks(), compute_branch_probabilities(), compute_checksum(), count, create_edge_list(), current_function_decl, DECL_ASSEMBLER_NAME, edge::dest, dump_flow_info(), EDGE_ABNORMAL, EDGE_ABNORMAL_CALL, EDGE_FAKE, EDGE_FALLTHRU, EDGE_INFO, basic_block_def::end, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR, FALSE, find_reg_note(), find_spanning_tree(), flag_branch_probabilities, flag_test_coverage, edge::flags, flow_call_edges_add(), FOR_BB_BETWEEN, FOR_EACH_BB, fprintf(), free(), free_aux_for_edges(), free_edge_list(), GET_CODE, get_insns(), basic_block_def::head, i, IDENTIFIER_POINTER, edge_info::ignore, basic_block_def::index, INDEX_EDGE, inf, insn, instrument_edges(), last_bb_file_name, make_edge(), max_reg_num(), n_basic_blocks, NEXT_INSN, NOTE_INSN_REPEATED_LINE_NUMBER, NOTE_LINE_NUMBER, NOTE_SOURCE_FILE, NULL, NUM_EDGES, edge_info::on_tree, output_gcov_string(), basic_block_def::pred, edge::pred_next, PREV_INSN, prev_nonnote_insn(), profile_arc_flag, REG_SETJMP, remove_fake_edges(), rtl_dump_file, split_block(), edge::src, strcmp(), strlen(), basic_block_def::succ, edge::succ_next, total_num_blocks, total_num_edges, total_num_edges_ignored, total_num_times_called, verify_flow_info(), x1, and xstrdup().
Definition at line 429 of file profile.c.
References abort, alloc_aux_for_blocks(), any_condjump_p(), BB_INFO, changes, basic_block_def::count, bb_info::count_valid, edge::dest, dump_flow_info(), EDGE_COMPLEX, EDGE_FAKE, EDGE_FALLTHRU, EDGE_INFO, basic_block_def::end, ENTRY_BLOCK_PTR, error(), EXIT_BLOCK_PTR, find_reg_note(), edge::flags, FOR_BB_BETWEEN, FOR_EACH_BB, fprintf(), fputc(), free(), free_aux_for_blocks(), GEN_INT, gen_rtx_EXPR_LIST, get_exec_counts(), HOST_WIDEST_INT, HOST_WIDEST_INT_PRINT_DEC, i, edge_info::ignore, index(), basic_block_def::index, NULL, edge_info::on_tree, basic_block_def::pred, bb_info::pred_count, edge::pred_next, REG_BR_PROB, REG_BR_PROB_BASE, REG_NOTES, rtl_dump_file, edge::src, basic_block_def::succ, bb_info::succ_count, edge::succ_next, total_hist_br_prob, total_num_branches, total_num_never_executed, total_num_passes, and XEXP.
Definition at line 744 of file profile.c.
References BB_TO_GCOV_INDEX, CHSUM_HASH, CHSUM_SHIFT, edge::dest, FOR_EACH_BB, basic_block_def::succ, and edge::succ_next.
Definition at line 1260 of file profile.c.
References bb_file, bbg_file, da_file, da_file_name, fclose(), flag_branch_probabilities, flag_test_coverage, fprintf(), i, rtl_dump_file, total_hist_br_prob, total_num_blocks, total_num_blocks_created, total_num_branches, total_num_edges, total_num_edges_ignored, total_num_edges_instrumented, total_num_never_executed, total_num_passes, total_num_times_called, and unlink.
| static basic_block find_group | ( | basic_block | bb | ) | [static] |
Definition at line 1127 of file profile.c.
References basic_block_def::aux, edge::dest, EDGE_ABNORMAL, EDGE_ABNORMAL_CALL, EDGE_CRITICAL_P, EDGE_FAKE, EDGE_INFO, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR, find_group(), edge::flags, FOR_BB_BETWEEN, fprintf(), i, edge_info::ignore, INDEX_EDGE, NULL, NUM_EDGES, rtl_dump_file, edge::src, and union_groups().
| static rtx gen_edge_profiler | ( | int | edgeno | ) | [static] |
Definition at line 1324 of file profile.c.
References BITS_PER_UNIT, const1_rtx, copy_rtx(), emit_move_insn(), end_sequence(), expand_simple_binop(), force_reg(), GCOV_TYPE_SIZE, gen_rtx_MEM(), get_insns(), mode, mode_for_size(), MODE_INT, new_alias_set(), OPTAB_WIDEN, PLUS, plus_constant, Pmode, set_mem_alias_set(), start_sequence(), tmp, and validize_mem().
Definition at line 263 of file profile.c.
References __read_gcov_string(), __read_gcov_type(), __read_long(), chksum, current_function_decl, current_function_name, da_file, DECL_ASSEMBLER_NAME, EDGE_INFO, ENTRY_BLOCK_PTR, error(), FOR_BB_BETWEEN, fprintf(), free(), fseek, i, IDENTIFIER_POINTER, edge_info::ignore, magic, NULL, edge_info::on_tree, rewind(), rtl_dump_file, SEEK_CUR, strcmp(), strlen(), basic_block_def::succ, edge::succ_next, tmp, and xmalloc().
| static GTY | ( | () | ) | [static] |
Definition at line 1308 of file profile.c.
References ASM_GENERATE_INTERNAL_LABEL, buf, gen_rtx_SYMBOL_REF, ggc_strdup, and Pmode.
| void init_branch_prob | ( | char * | filename | ) | const |
Definition at line 1199 of file profile.c.
References alloca, bb_file, bbg_file, bbg_file_name, da_file, da_file_name, flag_branch_probabilities, flag_test_coverage, fopen, i, last_bb_file_name, len, profile_arc_flag, strcat(), strcpy, strlen(), total_hist_br_prob, total_num_blocks, total_num_blocks_created, total_num_branches, total_num_edges, total_num_edges_ignored, total_num_edges_instrumented, total_num_never_executed, total_num_passes, total_num_times_called, warning, and xmalloc().
Definition at line 185 of file profile.c.
References abort, commit_edge_insertions_watch_calls(), edge::dest, EDGE_ABNORMAL, EDGE_CRITICAL_P, EDGE_INFO, ENTRY_BLOCK_PTR, edge::flags, FOR_BB_BETWEEN, fprintf(), gen_edge_profiler(), edge_info::ignore, inf, insert_insn_on_edge(), NULL, NUM_EDGES, edge_info::on_tree, remove_fake_edges(), rtl_dump_file, edge::src, basic_block_def::succ, edge::succ_next, total_num_blocks_created, and total_num_edges_instrumented.
| void output_func_start_profiler | ( | ) |
Definition at line 1354 of file profile.c.
References announce_function(), ASM_GENERATE_INTERNAL_LABEL, gcc_target::asm_out, asm_out_file, buf, build_decl, build_function_type(), cfun, concat(), gcc_target::asm_out::constructor, current_function_decl, DECL_EXTERNAL, DECL_INITIAL, DECL_RESULT, DECL_RTL, DEFAULT_INIT_PRIORITY, emit_library_call(), error_mark_node, expand_function_end(), expand_function_start(), fflush(), flag_inline_functions, force_reg(), free(), GCOV_TYPE_SIZE, gen_rtx_SYMBOL_REF, get_file_function_name(), get_identifier(), ggc_strdup, gcc_target::have_ctors_dtors, IDENTIFIER_POINTER, init_function_start(), input_filename, LCT_NORMAL, lineno, make_decl_rtl(), mode, mode_for_size(), MODE_INT, NULL, NULL_TREE, Pmode, quiet_flag, rest_of_compilation(), rest_of_decl_compilation(), targetm, TREE_PUBLIC, TREE_USED, void_type_node, and XEXP.
| static void union_groups PARAMS | ( | (basic_block, basic_block) | ) | [static] |
| static basic_block find_group PARAMS | ( | (basic_block) | ) | [static] |
| static rtx gen_edge_profiler PARAMS | ( | (int) | ) | [static] |
Definition at line 77 of file cplus-dem.c.
| static void union_groups | ( | basic_block | bb1, | |
| basic_block | bb2 | |||
| ) | [static] |
Definition at line 1105 of file profile.c.
References abort, basic_block_def::aux, and find_group().
char* da_file_name [static] |
char* last_bb_file_name [static] |
int need_func_profiler = 0 [static] |
int total_hist_br_prob[20] [static] |
int total_num_blocks [static] |
int total_num_blocks_created [static] |
int total_num_branches [static] |
int total_num_edges [static] |
int total_num_edges_ignored [static] |
int total_num_edges_instrumented [static] |
int total_num_never_executed [static] |
int total_num_passes [static] |
int total_num_times_called [static] |
1.5.6