GCC Middle and Back End API Reference
function_summary_base< T > Class Template Referenceabstract

#include <symbol-summary.h>

Inheritance diagram for function_summary_base< T >:
Collaboration diagram for function_summary_base< T >:

Public Member Functions

 function_summary_base (symbol_table *symtab, cgraph_node_hook symtab_insertion, cgraph_node_hook symtab_removal, cgraph_2node_hook symtab_duplication CXX_MEM_STAT_INFO)
 
virtual void insert (cgraph_node *, T *)
 
virtual void remove (cgraph_node *, T *)
 
virtual void duplicate (cgraph_node *, cgraph_node *, T *, T *)
 
void enable_insertion_hook ()
 
void disable_insertion_hook ()
 
void enable_duplication_hook ()
 
void disable_duplication_hook ()
 

Protected Member Functions

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

Protected Attributes

symbol_tablem_symtab
 
cgraph_node_hook m_symtab_insertion
 
cgraph_node_hook m_symtab_removal
 
cgraph_2node_hook m_symtab_duplication
 
cgraph_node_hook_listm_symtab_insertion_hook
 
cgraph_node_hook_listm_symtab_removal_hook
 
cgraph_2node_hook_listm_symtab_duplication_hook
 

Private Member Functions

virtual bool is_ggc ()=0
 

Private Attributes

object_allocator< Tm_allocator
 

Detailed Description

template<class T>
class function_summary_base< T >
Callgraph summary data structure.
   Copyright (C) 2014-2024 Free Software Foundation, Inc.
   Contributed by Martin Liska

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3, or (at your option) any later
version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3.  If not see
<http://www.gnu.org/licenses/>.   
Base class for function_summary and fast_function_summary classes.   

Constructor & Destructor Documentation

◆ function_summary_base()

Member Function Documentation

◆ allocate_new()

template<class T >
T * function_summary_base< T >::allocate_new ( )
inlineprotected

◆ disable_duplication_hook()

◆ disable_insertion_hook()

◆ duplicate()

template<class T >
virtual void function_summary_base< T >::duplicate ( cgraph_node * ,
cgraph_node * ,
T * ,
T *  )
inlinevirtual

References gcc_unreachable.

◆ enable_duplication_hook()

◆ enable_insertion_hook()

◆ insert()

template<class T >
virtual void function_summary_base< T >::insert ( cgraph_node * ,
T *  )
inlinevirtual

References gcc_unreachable.

◆ is_ggc()

template<class T >
virtual bool function_summary_base< T >::is_ggc ( )
privatepure virtual

◆ release()

template<class T >
void function_summary_base< T >::release ( T * item)
inlineprotected

◆ remove()

template<class T >
virtual void function_summary_base< T >::remove ( cgraph_node * ,
T *  )
inlinevirtual

◆ unregister_hooks()

template<typename T >
void function_summary_base< T >::unregister_hooks ( )
protected

Field Documentation

◆ m_allocator

◆ m_symtab

◆ m_symtab_duplication

template<class T >
cgraph_2node_hook function_summary_base< T >::m_symtab_duplication
protected

◆ m_symtab_duplication_hook

◆ m_symtab_insertion

template<class T >
cgraph_node_hook function_summary_base< T >::m_symtab_insertion
protected

◆ m_symtab_insertion_hook

◆ m_symtab_removal

template<class T >
cgraph_node_hook function_summary_base< T >::m_symtab_removal
protected

◆ m_symtab_removal_hook

template<class T >
cgraph_node_hook_list* function_summary_base< T >::m_symtab_removal_hook
protected

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