GCC Middle and Back End API Reference
modref_summary Struct Reference

#include <ipa-modref.h>

Collaboration diagram for modref_summary:

Public Member Functions

 modref_summary ()
 
 ~modref_summary ()
 
void dump (FILE *) const
 
bool useful_p (int ecf_flags, bool check_flags=true)
 
void finalize (tree)
 

Data Fields

modref_recordsloads
 
modref_recordsstores
 
auto_vec< modref_access_nodekills
 
auto_vec< eaf_flags_targ_flags
 
eaf_flags_t retslot_flags
 
eaf_flags_t static_chain_flags
 
unsigned writes_errno: 1
 
unsigned side_effects: 1
 
unsigned nondeterministic: 1
 
unsigned calls_interposable: 1
 
unsigned int load_accesses
 
unsigned global_memory_read: 1
 
unsigned global_memory_written: 1
 
unsigned try_dse: 1
 

Detailed Description

Single function summary.   

Constructor & Destructor Documentation

◆ modref_summary()

modref_summary::modref_summary ( )
Summary for a single function which this pass produces.   

◆ ~modref_summary()

modref_summary::~modref_summary ( )

References ggc_delete(), loads, and stores.

Member Function Documentation

◆ dump()

◆ finalize()

void modref_summary::finalize ( tree fun)
Called after summary is produced and before it is used by local analysis.
Can be called multiple times in case summary needs to update signature.
FUN is decl of function summary is attached to.   

References modref_ref_node< T >::accesses, modref_tree< T >::bases, modref_tree< T >::every_base, modref_base_node< T >::every_ref, FOR_EACH_VEC_SAFE_ELT, modref_tree< T >::global_access_p(), global_memory_read, global_memory_written, i, load_accesses, loads, opt_for_fn, modref_access_node::parm_offset_known, modref_base_node< T >::refs, side_effects, stores, try_dse, and writes_errno.

◆ useful_p()

bool modref_summary::useful_p ( int ecf_flags,
bool check_flags = true )
Return true if summary is potentially useful for optimization.
If CHECK_FLAGS is false assume that arg_flags are useful.   

References arg_flags, eaf_flags_useful_p(), ECF_CONST, ECF_LOOPING_CONST_OR_PURE, ECF_NOVOPS, ECF_PURE, modref_tree< T >::every_base, kills, loads, nondeterministic, remove_useless_eaf_flags(), retslot_flags, side_effects, static_chain_flags, and stores.

Referenced by ipa_merge_modref_summary_after_inlining().

Field Documentation

◆ arg_flags

◆ calls_interposable

unsigned modref_summary::calls_interposable

◆ global_memory_read

unsigned modref_summary::global_memory_read

◆ global_memory_written

unsigned modref_summary::global_memory_written

◆ kills

◆ load_accesses

unsigned int modref_summary::load_accesses

◆ loads

◆ nondeterministic

unsigned modref_summary::nondeterministic

◆ retslot_flags

◆ side_effects

◆ static_chain_flags

◆ stores

◆ try_dse

unsigned modref_summary::try_dse

Referenced by dse_optimize_call(), dump(), and finalize().

◆ writes_errno

unsigned modref_summary::writes_errno

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