GCC Middle and Back End API Reference
|
#include <ipa-fnsummary.h>
Public Member Functions | |
void | duplicate_from (const ipa_call_context &ctx) |
void | release () |
void | estimate_size_and_time (ipa_call_estimates *estimates, bool est_times=true, bool est_hints=true) |
bool | equal_to (const ipa_call_context &) |
bool | exists_p () |
Variant of ipa_call_context that is stored in a cache over a longer period of time.
void ipa_cached_call_context::duplicate_from | ( | const ipa_call_context & | ctx | ) |
Set THIS to be a duplicate of CTX. Copy all relevant info.
References i, ipa_get_param_count(), ipa_is_param_used_by_indirect_call(), ipa_is_param_used_by_ipa_predicates(), ipa_is_param_used_by_polymorphic_call(), ipa_node_params_sum, ipa_call_context::m_avals, ipa_call_context::m_inline_param_summary, ipa_call_arg_values::m_known_aggs, ipa_call_arg_values::m_known_contexts, ipa_call_arg_values::m_known_vals, ipa_call_arg_values::m_known_value_ranges, ipa_call_context::m_node, ipa_call_context::m_nonspec_possible_truths, ipa_call_context::m_possible_truths, MIN, ipa_argagg_value_list::value_for_index_p(), and vNULL.
Referenced by do_estimate_edge_time().
|
inherited |
Return true if CTX describes the same call context as THIS.
References ipa_call_context::equal_to(), i, ipa_get_param_count(), ipa_is_param_used_by_indirect_call(), ipa_is_param_used_by_ipa_predicates(), ipa_is_param_used_by_polymorphic_call(), ipa_node_params_sum, ipa_call_context::m_avals, ipa_call_context::m_inline_param_summary, ipa_call_arg_values::m_known_aggs, ipa_call_arg_values::m_known_contexts, ipa_call_arg_values::m_known_vals, ipa_call_context::m_node, ipa_call_context::m_nonspec_possible_truths, ipa_call_context::m_possible_truths, and operand_equal_p().
Referenced by do_estimate_edge_time(), and ipa_call_context::equal_to().
|
inherited |
Fill in the selected fields in ESTIMATES with value estimated for call in this context. Always compute size and min_size. Only compute time and nonspecialized_time if EST_TIMES is true. Only compute hints if EST_HINTS is true.
References ipa_fn_summary::builtin_constant_p_parms, cgraph_node::callees, ipa_fn_summary::conds, symtab_node::decl, DECL_DECLARED_INLINE_P, dump_condition(), dump_file, dump_flags, symtab_node::dump_name(), estimate_calls_size_and_time(), ipa_predicate::evaluate(), size_time_entry::exec_predicate, ipa_predicate::first_dynamic_condition, ipa_freqcounting_predicate::freq, gcc_checking_assert, ipa_call_estimates::hints, i, cgraph_node::indirect_calls, INLINE_HINT_builtin_constant_p, INLINE_HINT_declared_inline, INLINE_HINT_in_scc, INLINE_HINT_loop_iterations, INLINE_HINT_loop_stride, ipa_fn_summaries, ipa_fn_summary::loop_iterations, ipa_fn_summary::loop_strides, ipa_call_estimates::loops_with_known_iterations, ipa_call_estimates::loops_with_known_strides, ipa_call_context::m_avals, ipa_call_context::m_inline_param_summary, ipa_call_context::m_node, ipa_call_context::m_nonspec_possible_truths, ipa_call_context::m_possible_truths, ipa_call_estimates::min_size, size_time_entry::nonconst_predicate, ipa_call_estimates::nonspecialized_time, ipa_predicate::not_inlined_condition, NULL, ipa_freqcounting_predicate::predicate, ipa_predicate::probability(), RDIV, REG_BR_PROB_BASE, ipa_fn_summary::scc_no, ipa_call_estimates::size, size_time_entry::size, ipa_fn_summary::size_scale, ipa_fn_summary::size_time_table, TDF_DETAILS, ipa_call_estimates::time, size_time_entry::time, sreal::to_double(), vec_safe_iterate(), and vec_safe_length().
Referenced by do_estimate_edge_hints(), do_estimate_edge_size(), do_estimate_edge_time(), and estimate_ipcp_clone_size_and_time().
|
inlineinherited |
References ipa_call_context::m_node, and NULL.
Referenced by do_estimate_edge_time().
void ipa_cached_call_context::release | ( | ) |
Release memory used by known_vals/contexts/aggs vectors. and inline_param_summary.
References ipa_call_context::m_avals, ipa_call_context::m_inline_param_summary, ipa_call_arg_values::m_known_aggs, ipa_call_arg_values::m_known_contexts, ipa_call_arg_values::m_known_vals, and ipa_call_context::m_node.
Referenced by do_estimate_edge_time(), and node_context_cache_entry::~node_context_cache_entry().
|
privateinherited |
|
privateinherited |
Referenced by duplicate_from(), ipa_call_context::equal_to(), ipa_call_context::estimate_size_and_time(), and release().
|
privateinherited |
Referenced by duplicate_from(), ipa_call_context::equal_to(), ipa_call_context::estimate_size_and_time(), and release().
|
privateinherited |
|
privateinherited |
Referenced by duplicate_from(), ipa_call_context::equal_to(), and ipa_call_context::estimate_size_and_time().
|
privateinherited |
Referenced by duplicate_from(), ipa_call_context::equal_to(), and ipa_call_context::estimate_size_and_time().