|
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) |
| #define | UINT64_BIT_FIELD_ALIGN |
Enumerations | |
| enum | profile_quality { UNINITIALIZED_PROFILE , GUESSED_LOCAL , GUESSED_GLOBAL0_AFDO , GUESSED_GLOBAL0_ADJUSTED , GUESSED_GLOBAL0 , 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) |
| #define RDIV | ( | X, | |
| Y ) |
Referenced by apply_scale(), profile_probability::apply_scale(), combine_probabilities(), 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_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 cfg_diagnostic_digraph::add_cfg_node_succ_edges(), analyze_function_body(), profile_count::apply_probability(), apply_scale(), cgraph_node::cgraph_node(), cheap_bb_rtx_cost_p(), check_bb_profile(), check_probability(), combine_predictions_for_bb(), combine_predictions_for_insn(), combine_probabilities(), 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 |
| enum profile_quality |
|
extern |
Parse VALUE as profile quality and return true when a valid QUALITY.
References i, parse_profile_quality(), and profile_quality_names.
Referenced by parse_profile_quality().
|
extern |
Get a string describing QUALITY.
References profile_quality_as_string(), and profile_quality_names.
Referenced by dump_function_to_file(), dump_gimple_bb_header(), pp_cfg_jump(), optrecord_json_writer::profile_count_to_json(), and profile_quality_as_string().
|
inline |
Compute RES=(a*b + c/2)/c capping and return false if overflow happened.
References a, b, safe_scale_64bit(), and slow_safe_scale_64bit().
Referenced by profile_probability::apply(), profile_count::apply_probability(), profile_count::apply_probability(), profile_count::apply_scale(), profile_count::apply_scale(), profile_probability::apply_scale(), profile_count::differs_from_p(), profile_count::probability_in(), profile_probability::probability_in_gcov_type(), safe_scale_64bit(), and profile_count::to_cgraph_frequency().
| bool slow_safe_scale_64bit | ( | uint64_t | a, |
| uint64_t | b, | ||
| uint64_t | c, | ||
| uint64_t * | res ) |
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, slow_safe_scale_64bit(), wi::udiv_floor(), and wi::umul().
Referenced by safe_scale_64bit(), and slow_safe_scale_64bit().