GCC Middle and Back End API Reference
fast_call_summary< T *, V > Class Template Reference

#include <symbol-summary.h>

Inheritance diagram for fast_call_summary< T *, V >:
Collaboration diagram for fast_call_summary< T *, V >:

Public Member Functions

 fast_call_summary (symbol_table *symtab CXX_MEM_STAT_INFO)
 
virtual ~fast_call_summary ()
 
template<typename Arg, bool(*)(const T &, Arg) f>
void traverse (Arg a) const
 
Tget_create (cgraph_edge *edge)
 
Tget (cgraph_edge *edge) ATTRIBUTE_PURE
 
void remove (cgraph_edge *edge)
 
bool exists (cgraph_edge *edge)
 
virtual void remove (cgraph_edge *, T *)
 
virtual void duplicate (cgraph_edge *, cgraph_edge *, T *, T *)
 
void enable_duplication_hook ()
 
void disable_duplication_hook ()
 

Static Public Member Functions

static void symtab_removal (cgraph_edge *edge, void *data)
 
static void symtab_duplication (cgraph_edge *edge1, cgraph_edge *edge2, void *data)
 

Protected Member Functions

Tallocate_new ()
 
void release (T *item)
 
void unregister_hooks ()
 

Protected Attributes

symbol_tablem_symtab
 
cgraph_edge_hook m_symtab_removal
 
cgraph_2edge_hook m_symtab_duplication
 
cgraph_edge_hook_listm_symtab_removal_hook
 
cgraph_2edge_hook_listm_symtab_duplication_hook
 
bool m_initialize_when_cloning
 

Private Member Functions

bool is_ggc () final override
 
 fast_call_summary ()
 

Private Attributes

vec< T *, V > * m_vector
 
object_allocator< Tm_allocator
 

Friends

template<typename U>
void gt_ggc_mx (fast_call_summary< U *, va_gc > *const &)
 
template<typename U>
void gt_pch_nx (fast_call_summary< U *, va_gc > *const &)
 
template<typename U>
void gt_pch_nx (fast_call_summary< U *, va_gc > *const &, gt_pointer_operator, void *)
 

Detailed Description

template<class T, class V>
class fast_call_summary< T *, V >
Call vector summary is a fast implementation of call_summary that
utilizes vector as primary storage of summaries.   

Constructor & Destructor Documentation

◆ fast_call_summary() [1/2]

◆ ~fast_call_summary()

◆ fast_call_summary() [2/2]

Member Function Documentation

◆ allocate_new()

template<class T>
T * call_summary_base< T >::allocate_new ( )
inlineprotectedinherited

◆ disable_duplication_hook()

template<class T>
void call_summary_base< T >::disable_duplication_hook ( )
inlineinherited

References m_symtab, m_symtab_duplication_hook, and NULL.

Referenced by unregister_hooks().

◆ duplicate()

template<class T>
virtual void call_summary_base< T >::duplicate ( cgraph_edge * ,
cgraph_edge * ,
T * ,
T *  )
inlinevirtualinherited

◆ enable_duplication_hook()

template<class T>
void call_summary_base< T >::enable_duplication_hook ( )
inlineinherited

◆ exists()

template<class T, class V>
bool fast_call_summary< T *, V >::exists ( cgraph_edge * edge)
inline

References m_vector, and NULL.

Referenced by get(), and remove().

◆ get()

template<class T, class V>
T * fast_call_summary< T *, V >::get ( cgraph_edge * edge)
inline

References exists(), NULL, and T.

◆ get_create()

template<class T, class V>
T * fast_call_summary< T *, V >::get_create ( cgraph_edge * edge)
inline

◆ is_ggc()

template<typename T, typename V>
bool fast_call_summary< T *, V >::is_ggc ( )
inlinefinaloverrideprivatevirtual

◆ release()

◆ remove() [1/2]

template<class T>
virtual void call_summary_base< T >::remove ( cgraph_edge * ,
T *  )
inlinevirtualinherited

References T.

◆ remove() [2/2]

template<class T, class V>
void fast_call_summary< T *, V >::remove ( cgraph_edge * edge)
inline

◆ symtab_duplication()

template<typename T, typename V>
void fast_call_summary< T *, V >::symtab_duplication ( cgraph_edge * edge1,
cgraph_edge * edge2,
void * data )
static

◆ symtab_removal()

template<typename T, typename V>
void fast_call_summary< T *, V >::symtab_removal ( cgraph_edge * edge,
void * data )
static

References fast_call_summary().

Referenced by fast_call_summary().

◆ traverse()

template<class T, class V>
template<typename Arg, bool(*)(const T &, Arg) f>
void fast_call_summary< T *, V >::traverse ( Arg a) const
inline

References a, i, m_vector, and NULL.

◆ unregister_hooks()

template<typename T>
void call_summary_base< T >::unregister_hooks ( )
protectedinherited

Friends And Related Symbol Documentation

◆ gt_ggc_mx

template<class T, class V>
template<typename U>
void gt_ggc_mx ( fast_call_summary< U *, va_gc > *const & )
friend

References fast_call_summary(), and gt_ggc_mx.

Referenced by gt_ggc_mx.

◆ gt_pch_nx [1/2]

template<class T, class V>
template<typename U>
void gt_pch_nx ( fast_call_summary< U *, va_gc > *const & )
friend

References fast_call_summary(), and gt_pch_nx.

Referenced by gt_pch_nx, and gt_pch_nx.

◆ gt_pch_nx [2/2]

template<class T, class V>
template<typename U>
void gt_pch_nx ( fast_call_summary< U *, va_gc > *const & ,
gt_pointer_operator ,
void *  )
friend

References fast_call_summary(), gt_pch_nx, and T.

Field Documentation

◆ m_allocator

template<class T>
object_allocator<T> call_summary_base< T >::m_allocator
privateinherited

◆ m_initialize_when_cloning

template<class T>
bool call_summary_base< T >::m_initialize_when_cloning
protectedinherited

Referenced by call_summary_base().

◆ m_symtab

◆ m_symtab_duplication

template<class T>
cgraph_2edge_hook call_summary_base< T >::m_symtab_duplication
protectedinherited

◆ m_symtab_duplication_hook

template<class T>
cgraph_2edge_hook_list* call_summary_base< T >::m_symtab_duplication_hook
protectedinherited

◆ m_symtab_removal

template<class T>
cgraph_edge_hook call_summary_base< T >::m_symtab_removal
protectedinherited

Referenced by call_summary_base().

◆ m_symtab_removal_hook

template<class T>
cgraph_edge_hook_list* call_summary_base< T >::m_symtab_removal_hook
protectedinherited

◆ m_vector

template<class T, class V>
vec<T *, V>* fast_call_summary< T *, V >::m_vector
private

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