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

#include <state-purge.h>

Inheritance diagram for ana::state_purge_per_decl:
Collaboration diagram for ana::state_purge_per_decl:

Public Member Functions

 state_purge_per_decl (const state_purge_map &map, tree decl, const function &fun)
 
bool needed_at_point_p (const function_point &point) const
 
void add_needed_at (const function_point &point)
 
void add_pointed_to_at (const function_point &point)
 
void process_worklists (const state_purge_map &map, region_model_manager *mgr)
 
const functionget_function () const
 
tree get_fndecl () const
 

Protected Types

typedef hash_set< function_pointpoint_set_t
 

Private Member Functions

void add_to_worklist (const function_point &point, auto_vec< function_point > *worklist, point_set_t *seen, logger *logger)
 
void process_point_backwards (const function_point &point, auto_vec< function_point > *worklist, point_set_t *seen, const state_purge_map &map, const region_model &model)
 
void process_point_forwards (const function_point &point, auto_vec< function_point > *worklist, point_set_t *seen, const state_purge_map &map)
 

Static Private Member Functions

static function_point before_use_stmt (const state_purge_map &map, const gimple *use_stmt)
 

Private Attributes

point_set_t m_points_needing_decl
 
point_set_t m_points_taking_address
 
tree m_decl
 
const functionm_fun
 

Detailed Description

The part of a state_purge_map relating to a specific decl.

Analogous to state_purge_per_ssa_name, but for local decls.

This is more involved than the SSA name case, because we also need
to handle pointers and components.   

Member Typedef Documentation

◆ point_set_t

Constructor & Destructor Documentation

◆ state_purge_per_decl()

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

Member Function Documentation

◆ add_needed_at()

void ana::state_purge_per_decl::add_needed_at ( const function_point & point)

◆ add_pointed_to_at()

void ana::state_purge_per_decl::add_pointed_to_at ( const function_point & point)

◆ add_to_worklist()

void ana::state_purge_per_decl::add_to_worklist ( const function_point & point,
auto_vec< function_point > * worklist,
point_set_t * seen,
logger * logger )
private

◆ before_use_stmt()

static function_point ana::state_purge_per_decl::before_use_stmt ( const state_purge_map & map,
const gimple * use_stmt )
staticprivate

◆ get_fndecl()

tree ana::state_purge_per_tree::get_fndecl ( ) const
inlineinherited

◆ get_function()

const function & ana::state_purge_per_tree::get_function ( ) const
inlineinherited

◆ needed_at_point_p()

bool ana::state_purge_per_decl::needed_at_point_p ( const function_point & point) const

◆ process_point_backwards()

void ana::state_purge_per_decl::process_point_backwards ( const function_point & point,
auto_vec< function_point > * worklist,
point_set_t * seen,
const state_purge_map & map,
const region_model & model )
private

◆ process_point_forwards()

void ana::state_purge_per_decl::process_point_forwards ( const function_point & point,
auto_vec< function_point > * worklist,
point_set_t * seen,
const state_purge_map & map )
private

◆ process_worklists()

void ana::state_purge_per_decl::process_worklists ( const state_purge_map & map,
region_model_manager * mgr )

Field Documentation

◆ m_decl

tree ana::state_purge_per_decl::m_decl
private

◆ m_fun

const function& ana::state_purge_per_tree::m_fun
privateinherited

◆ m_points_needing_decl

point_set_t ana::state_purge_per_decl::m_points_needing_decl
private

◆ m_points_taking_address

point_set_t ana::state_purge_per_decl::m_points_taking_address
private

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