GCC Middle and Back End API Reference
back_threader Class Reference
Collaboration diagram for back_threader:

Public Member Functions

 back_threader (function *fun, unsigned flags, bool first)
 
 ~back_threader ()
 
unsigned thread_blocks ()
 

Private Member Functions

void maybe_thread_block (basic_block bb)
 
bool debug_counter ()
 
edge maybe_register_path (back_threader_profitability &)
 
void maybe_register_path_dump (edge taken_edge)
 
void find_paths_to_names (basic_block bb, bitmap imports, unsigned, back_threader_profitability &)
 
edge find_taken_edge (const vec< basic_block > &path)
 
edge find_taken_edge_cond (const vec< basic_block > &path, gcond *)
 
edge find_taken_edge_switch (const vec< basic_block > &path, gswitch *)
 
virtual void debug ()
 
virtual void dump (FILE *out)
 

Private Attributes

back_threader_registry m_registry
 
auto_vec< basic_blockm_path
 
hash_set< basic_blockm_visited_bbs
 
auto_bitmap m_imports
 
gimplem_last_stmt
 
functionm_fun
 
gimple_rangerm_ranger
 
unsigned m_flags
 
bool m_first
 

Static Private Attributes

static const edge UNREACHABLE_EDGE = (edge) -1
 

Constructor & Destructor Documentation

◆ back_threader()

◆ ~back_threader()

back_threader::~back_threader ( )

Member Function Documentation

◆ debug()

void back_threader::debug ( )
privatevirtual

References dump().

◆ debug_counter()

bool back_threader::debug_counter ( )
private

◆ dump()

void back_threader::dump ( FILE * out)
privatevirtual

◆ find_paths_to_names()

◆ find_taken_edge()

edge back_threader::find_taken_edge ( const vec< basic_block > & path)
private

◆ find_taken_edge_cond()

◆ find_taken_edge_switch()

◆ maybe_register_path()

◆ maybe_register_path_dump()

void back_threader::maybe_register_path_dump ( edge taken_edge)
private

◆ maybe_thread_block()

◆ thread_blocks()

Field Documentation

◆ m_first

bool back_threader::m_first
private

Referenced by debug_counter().

◆ m_flags

◆ m_fun

function* back_threader::m_fun
private

Referenced by back_threader(), and thread_blocks().

◆ m_imports

◆ m_last_stmt

gimple* back_threader::m_last_stmt
private

◆ m_path

◆ m_ranger

gimple_ranger* back_threader::m_ranger
private

◆ m_registry

back_threader_registry back_threader::m_registry
private

◆ m_visited_bbs

hash_set<basic_block> back_threader::m_visited_bbs
private

◆ UNREACHABLE_EDGE

const edge back_threader::UNREACHABLE_EDGE = (edge) -1
staticprivate

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