GCC Middle and Back End API Reference
ana::state_purge_map Class Reference

#include <state-purge.h>

Inheritance diagram for ana::state_purge_map:
Collaboration diagram for ana::state_purge_map:

Public Types

typedef ordered_hash_map< tree, state_purge_per_ssa_name * > ssa_map_t
 
typedef ssa_map_t::iterator ssa_iterator
 
typedef ordered_hash_map< tree, state_purge_per_decl * > decl_map_t
 
typedef decl_map_t::iterator decl_iterator
 

Public Member Functions

 state_purge_map (const supergraph &sg, region_model_manager *mgr, logger *logger)
 
 ~state_purge_map ()
 
const state_purge_per_ssa_nameget_data_for_ssa_name (tree name) const
 
const state_purge_per_declget_any_data_for_decl (tree decl) const
 
state_purge_per_declget_or_create_data_for_decl (const function &fun, tree decl)
 
const supergraphget_sg () const
 
ssa_iterator begin_ssas () const
 
ssa_iterator end_ssas () const
 
decl_iterator begin_decls () const
 
decl_iterator end_decls () const
 
loggerget_logger () const
 
void set_logger (logger *logger)
 
void log (const char *fmt,...) const ATTRIBUTE_GCC_DIAG(2
 
void void start_log_line () const
 
void end_log_line () const
 
void enter_scope (const char *scope_name)
 
void exit_scope (const char *scope_name)
 
pretty_printerget_logger_pp () const
 
FILEget_logger_file () const
 

Private Member Functions

 DISABLE_COPY_AND_ASSIGN (state_purge_map)
 

Private Attributes

const supergraphm_sg
 
ssa_map_t m_ssa_map
 
decl_map_t m_decl_map
 
loggerm_logger
 

Detailed Description

The result of analyzing which decls and SSA names can be purged from state at
different points in the program, so that we can simplify program_state
objects, in the hope of reducing state-blowup.   

Member Typedef Documentation

◆ decl_iterator

◆ decl_map_t

◆ ssa_iterator

◆ ssa_map_t

Constructor & Destructor Documentation

◆ state_purge_map()

ana::state_purge_map::state_purge_map ( const supergraph & sg,
region_model_manager * mgr,
logger * logger )

◆ ~state_purge_map()

ana::state_purge_map::~state_purge_map ( )

Member Function Documentation

◆ begin_decls()

decl_iterator ana::state_purge_map::begin_decls ( ) const
inline

◆ begin_ssas()

ssa_iterator ana::state_purge_map::begin_ssas ( ) const
inline

◆ DISABLE_COPY_AND_ASSIGN()

ana::state_purge_map::DISABLE_COPY_AND_ASSIGN ( state_purge_map )
private

◆ end_decls()

decl_iterator ana::state_purge_map::end_decls ( ) const
inline

◆ end_log_line()

void ana::log_user::end_log_line ( ) const
inlineinherited
A shortcut for ending a log line from a log_user,
handling the common case where the underlying logger is NULL via
a no-op.   

References ana::logger::end_log_line(), and ana::log_user::m_logger.

◆ end_ssas()

ssa_iterator ana::state_purge_map::end_ssas ( ) const
inline

◆ enter_scope()

void ana::log_user::enter_scope ( const char * scope_name)
inlineinherited
A shortcut for recording entry into a scope from a log_user,
handling the common case where the underlying logger is NULL via
a no-op.   

References ana::logger::enter_scope(), ggc_alloc(), and ana::log_user::m_logger.

◆ exit_scope()

void ana::log_user::exit_scope ( const char * scope_name)
inlineinherited
A shortcut for recording exit from a scope from a log_user,
handling the common case where the underlying logger is NULL via
a no-op.   

References ana::logger::exit_scope(), ggc_alloc(), and ana::log_user::m_logger.

◆ get_any_data_for_decl()

const state_purge_per_decl * ana::state_purge_map::get_any_data_for_decl ( tree decl) const
inline

◆ get_data_for_ssa_name()

const state_purge_per_ssa_name & ana::state_purge_map::get_data_for_ssa_name ( tree name) const
inline

◆ get_logger()

logger * ana::log_user::get_logger ( ) const
inlineinherited

◆ get_logger_file()

FILE * ana::log_user::get_logger_file ( ) const
inlineinherited

◆ get_logger_pp()

pretty_printer * ana::log_user::get_logger_pp ( ) const
inlineinherited

◆ get_or_create_data_for_decl()

state_purge_per_decl & ana::state_purge_map::get_or_create_data_for_decl ( const function & fun,
tree decl )

◆ get_sg()

const supergraph & ana::state_purge_map::get_sg ( ) const
inline

References m_sg.

◆ log()

void ana::log_user::log ( const char * fmt,
... ) const
inlineinherited
A shortcut for calling log from a log_user, handling the common
case where the underlying logger is NULL via a no-op.   

References ap, ggc_alloc(), ana::logger::log_va(), and ana::log_user::m_logger.

◆ set_logger()

void ana::log_user::set_logger ( logger * logger)
inherited

◆ start_log_line()

void ana::log_user::start_log_line ( ) const
inlineinherited
A shortcut for starting a log line from a log_user,
handling the common case where the underlying logger is NULL via
a no-op.   

References ana::log_user::m_logger, and ana::logger::start_log_line().

Field Documentation

◆ m_decl_map

decl_map_t ana::state_purge_map::m_decl_map
private

◆ m_logger

◆ m_sg

const supergraph& ana::state_purge_map::m_sg
private

Referenced by get_sg().

◆ m_ssa_map

ssa_map_t ana::state_purge_map::m_ssa_map
private

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