|
GCC Middle and Back End API Reference
|
#include <ipa-fnsummary.h>

Public Member Functions | |
| ipa_fn_summary () | |
| ipa_fn_summary (const ipa_fn_summary &s) | |
| ~ipa_fn_summary () | |
| void | account_size_time (int, sreal, const ipa_predicate &, const ipa_predicate &, bool call=false) |
Data Fields | |
| int | min_size |
| unsigned | inlinable: 1 |
| unsigned int | single_caller: 1 |
| unsigned int | fp_expressions: 1 |
| unsigned int | safe_to_inline_to_always_inline: 2 |
| unsigned int | target_info |
| HOST_WIDE_INT | estimated_stack_size |
| sreal | time |
| conditions | conds |
| auto_vec< size_time_entry > | size_time_table |
| vec< size_time_entry, va_heap, vl_ptr > | call_size_time_table |
| vec< ipa_freqcounting_predicate, va_gc > * | loop_iterations |
| vec< ipa_freqcounting_predicate, va_gc > * | loop_strides |
| vec< int, va_heap, vl_ptr > | builtin_constant_p_parms |
| int | growth |
| int | scc_no |
Static Public Attributes | |
| static const int | size_scale = 2 |
| static const int | max_size_time_table_size = 256 |
Function inlining information.
|
inline |
References builtin_constant_p_parms, call_size_time_table, conds, estimated_stack_size, false, fp_expressions, growth, inlinable, loop_iterations, loop_strides, min_size, NULL, safe_to_inline_to_always_inline, scc_no, single_caller, size_time_table, target_info, time, and vNULL.
Referenced by ipa_fn_summary().
|
inline |
| ipa_fn_summary::~ipa_fn_summary | ( | ) |
References builtin_constant_p_parms, call_size_time_table, conds, edge_predicate_pool, i, loop_iterations, loop_strides, vec_free(), and vec_safe_length().
| void ipa_fn_summary::account_size_time | ( | int | size, |
| sreal | time, | ||
| const ipa_predicate & | exec_pred, | ||
| const ipa_predicate & | nonconst_pred_in, | ||
| bool | call = false ) |
Record SIZE and TIME to SUMMARY. The accounted code will be executed when EXEC_PRED is true. When NONCONST_PRED is false the code will evaluate to constant and will get optimized out in specialized clones of the function. If CALL is true account to call_size_time_table rather than size_time_table.
References call_size_time_table, conds, ipa_predicate::dump(), dump_file, dump_flags, size_time_entry::exec_predicate, gcc_checking_assert, i, max_size_time_table_size, size_time_entry::nonconst_predicate, size_time_entry::size, size_scale, size_time_table, table, TDF_DETAILS, time, and size_time_entry::time.
Referenced by analyze_function_body(), compute_fn_summary(), ipa_fn_summary_t::duplicate(), estimate_calls_size_and_time(), ipa_merge_fn_summary_after_inlining(), and summarize_calls_size_and_time().
| vec<size_time_entry, va_heap, vl_ptr> ipa_fn_summary::call_size_time_table |
| conditions ipa_fn_summary::conds |
Referenced by account_size_time(), add_condition(), compute_bb_predicates(), dump_ipa_call_summary(), ipa_fn_summary_t::duplicate(), ipa_call_context::estimate_size_and_time(), evaluate_conditions_for_known_args(), evaluate_properties_for_edge(), inline_read_section(), ipa_fn_summary(), ipa_fn_summary(), ipa_fn_summary_write(), ipa_merge_fn_summary_after_inlining(), predicate_for_phi_result(), ipa_predicate::remap_after_inlining(), set_switch_stmt_execution_predicate(), will_be_nonconstant_expr_predicate(), will_be_nonconstant_predicate(), and ~ipa_fn_summary().
| HOST_WIDE_INT ipa_fn_summary::estimated_stack_size |
| unsigned int ipa_fn_summary::fp_expressions |
| int ipa_fn_summary::growth |
Referenced by edge_badness(), inline_small_functions(), ipa_fn_summary(), and ipa_fn_summary().
| unsigned ipa_fn_summary::inlinable |
| vec<ipa_freqcounting_predicate, va_gc>* ipa_fn_summary::loop_iterations |
| vec<ipa_freqcounting_predicate, va_gc>* ipa_fn_summary::loop_strides |
|
static |
Referenced by account_size_time(), and estimate_calls_size_and_time().
| int ipa_fn_summary::min_size |
| unsigned int ipa_fn_summary::safe_to_inline_to_always_inline |
Referenced by can_early_inline_edge_p(), and ipa_fn_summary().
| int ipa_fn_summary::scc_no |
Referenced by ipa_call_context::estimate_size_and_time(), inline_small_functions(), ipa_fn_summary(), and ipa_fn_summary().
| unsigned int ipa_fn_summary::single_caller |
Referenced by edge_badness(), inline_small_functions(), ipa_fn_summary(), and ipa_fn_summary().
|
static |
| auto_vec<size_time_entry> ipa_fn_summary::size_time_table |
| unsigned int ipa_fn_summary::target_info |
| sreal ipa_fn_summary::time |