GCC Middle and Back End API Reference
|
Go to the source code of this file.
Data Structures | |
class | profile_probability |
struct | profile_count |
Macros | |
#define | REG_BR_PROB_BASE 10000 |
#define | RDIV(X, Y) (((X) + (Y) / 2) / (Y)) |
#define | UINT64_BIT_FIELD_ALIGN |
Enumerations | |
enum | profile_quality { UNINITIALIZED_PROFILE , GUESSED_LOCAL , GUESSED_GLOBAL0 , GUESSED_GLOBAL0_ADJUSTED , GUESSED , AFDO , ADJUSTED , PRECISE } |
Functions | |
const char * | profile_quality_as_string (enum profile_quality) |
bool | parse_profile_quality (const char *value, profile_quality *quality) |
bool | slow_safe_scale_64bit (uint64_t a, uint64_t b, uint64_t c, uint64_t *res) |
bool | safe_scale_64bit (uint64_t a, uint64_t b, uint64_t c, uint64_t *res) |
Referenced by profile_probability::apply(), ipa_call_context::estimate_size_and_time(), expr_expected_value_1(), profile_probability::from_reg_br_prob_base(), ipa_update_overall_fn_summary(), merge_profile_summaries(), profile_probability::operator*(), profile_probability::operator*=(), profile_probability::operator/(), profile_probability::operator/=(), predict_loops(), profile_count::probability_in(), profile_probability::sqrt(), and profile_probability::to_reg_br_prob_base().
#define REG_BR_PROB_BASE 10000 |
The base value for branch probability notes and edge probabilities.
Referenced by analyze_function_body(), profile_count::apply_probability(), cheap_bb_rtx_cost_p(), check_bb_profile(), check_probability(), combine_predictions_for_bb(), combine_predictions_for_insn(), compute_branch_probabilities(), create_coalesce_list_for_region(), draw_cfg_node_succ_edges(), speculative_call_summary::dump(), dump_ipa_call_summary(), dump_prediction(), dump_probability(), edge_predicted_by_p(), predictor_hash::equal(), ipa_call_context::estimate_size_and_time(), expected_loop_iterations(), expr_expected_value_1(), find_best_predecessor(), find_traces(), profile_probability::from_reg_br_prob_base(), predictor_hash::hash(), input_bb(), inverse_probability(), invert_br_probabilities(), ipa_merge_fn_summary_after_inlining(), ipa_profile(), merge_profile_summaries(), mostly_true_jump(), param_change_prob(), predict_edge_def(), predict_insn_def(), predict_iv_comparison(), predict_loops(), predictable_edge_p(), ipa_predicate::probability(), prune_predictions_for_bb(), rtl_predict_edge(), tail_duplicate(), profile_count::to_frequency(), profile_probability::to_reg_br_prob_base(), tree_predict_by_opcode(), and inline_param_summary::useless_p().
#define UINT64_BIT_FIELD_ALIGN |
|
extern |
Parse VALUE as profile quality and return true when a valid QUALITY.
References ggc_alloc(), i, and profile_quality_names.
|
extern |
Get a string describing QUALITY.
References profile_quality_names.
Referenced by dump_function_to_file(), dump_gimple_bb_header(), pp_cfg_jump(), and optrecord_json_writer::profile_count_to_json().
Compute RES=(a*b + c/2)/c capping and return false if overflow happened.
References a, b, ggc_alloc(), and slow_safe_scale_64bit().
Referenced by profile_count::apply_probability(), profile_count::apply_probability(), profile_probability::apply_scale(), profile_count::apply_scale(), profile_count::apply_scale(), profile_probability::apply_scale(), profile_count::differs_from_p(), profile_probability::probability_in_gcov_type(), and profile_count::to_cgraph_frequency().
Compute RES=(a*b + c/2)/c capping and return false if overflow happened.
References a, b, wi::fits_uhwi_p(), FIXED_WIDE_INT, gcc_checking_assert, ggc_alloc(), wi::udiv_floor(), and wi::umul().
Referenced by safe_scale_64bit().