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_tree< T >::bases, modref_tree< T >::every_base, FOR_EACH_VEC_SAFE_ELT, ggc_alloc(), modref_tree< T >::global_access_p(), global_memory_read, global_memory_written, i, load_accesses, loads, opt_for_fn, 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, ggc_alloc(), kills, loads, nondeterministic, remove_useless_eaf_flags(), retslot_flags, side_effects, static_chain_flags, and stores.

Field Documentation

◆ arg_flags

auto_vec<eaf_flags_t> modref_summary::arg_flags

Referenced by dump(), and useful_p().

◆ calls_interposable

unsigned modref_summary::calls_interposable

Referenced by dump().

◆ global_memory_read

unsigned modref_summary::global_memory_read

Referenced by dump(), and finalize().

◆ global_memory_written

unsigned modref_summary::global_memory_written

Referenced by dump(), and finalize().

◆ kills

auto_vec<modref_access_node> modref_summary::kills

Referenced by dump(), and useful_p().

◆ load_accesses

unsigned int modref_summary::load_accesses

Referenced by finalize().

◆ loads

modref_records* modref_summary::loads

◆ nondeterministic

unsigned modref_summary::nondeterministic

Referenced by dump(), and useful_p().

◆ retslot_flags

eaf_flags_t modref_summary::retslot_flags

Referenced by dump(), and useful_p().

◆ side_effects

unsigned modref_summary::side_effects

◆ static_chain_flags

eaf_flags_t modref_summary::static_chain_flags

Referenced by dump(), and useful_p().

◆ stores

modref_records* modref_summary::stores

◆ try_dse

unsigned modref_summary::try_dse

Referenced by dump(), and finalize().

◆ writes_errno

unsigned modref_summary::writes_errno

Referenced by dump(), and finalize().


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