GCC Middle and Back End API Reference
ipa_fn_summary Class Reference

#include <ipa-fnsummary.h>

Collaboration diagram for ipa_fn_summary:

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_entrysize_time_table
 
vec< size_time_entry, va_heap, vl_ptrcall_size_time_table
 
vec< ipa_freqcounting_predicate, va_gc > * loop_iterations
 
vec< ipa_freqcounting_predicate, va_gc > * loop_strides
 
vec< int, va_heap, vl_ptrbuiltin_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
 

Detailed Description

Function inlining information.   

Constructor & Destructor Documentation

◆ ipa_fn_summary() [1/2]

ipa_fn_summary::ipa_fn_summary ( )
inline

◆ ipa_fn_summary() [2/2]

ipa_fn_summary::ipa_fn_summary ( const ipa_fn_summary & s)
inline

◆ ~ipa_fn_summary()

Member Function Documentation

◆ account_size_time()

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, size_time_entry::time, and sreal::to_double().

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().

Field Documentation

◆ builtin_constant_p_parms

◆ call_size_time_table

◆ conds

◆ estimated_stack_size

◆ fp_expressions

◆ growth

int ipa_fn_summary::growth

◆ inlinable

◆ loop_iterations

◆ loop_strides

◆ max_size_time_table_size

const int ipa_fn_summary::max_size_time_table_size = 256
static

◆ min_size

◆ safe_to_inline_to_always_inline

unsigned int ipa_fn_summary::safe_to_inline_to_always_inline

Referenced by can_early_inline_edge_p().

◆ scc_no

◆ single_caller

unsigned int ipa_fn_summary::single_caller

◆ size_scale

◆ size_time_table

◆ target_info

◆ time


The documentation for this class was generated from the following files: