GCC Middle and Back End API Reference
vn_driver Class Reference

#include <tree-ssa-sccvn.h>

Collaboration diagram for vn_driver:

Public Member Functions

 vn_driver (function *, bool iterate, bool eliminate, bool want_value_ids=false, vn_lookup_kind=VN_WALKREWRITE)
 vn_driver (function *, edge entry, bitmap exit_bbs, bool iterate, bool eliminate, bool skip_entry_phis, vn_lookup_kind)
 ~vn_driver ()
unsigned finalize (bitmap inserted_exprs=NULL)
unsigned todo () const

Private Member Functions

 DISABLE_COPY_AND_ASSIGN (vn_driver)

Private Attributes

class rpo_elim * m_avail
int * m_bb_to_rpo
unsigned m_todo
bool m_eliminate

Detailed Description

Value-numbers a function or a region.   

Constructor & Destructor Documentation

◆ vn_driver() [1/2]

vn_driver::vn_driver ( function * fn,
bool iterate,
bool eliminate,
bool want_value_ids = false,
vn_lookup_kind kind = VN_WALKREWRITE )

◆ vn_driver() [2/2]

vn_driver::vn_driver ( function * fn,
edge entry,
bitmap exit_bbs,
bool iterate,
bool eliminate,
bool skip_entry_phis,
vn_lookup_kind kind )
Value-number the region ENTRY leads into, which exits to EXIT_BBS, or all of
FN if ENTRY is NULL.   

References do_rpo_vn_1(), ENTRY_BLOCK_PTR_FOR_FN, last_basic_block_for_fn, m_avail, m_bb_to_rpo, m_eliminate, m_todo, rpo_elim::rpo_elim(), and single_succ().

◆ ~vn_driver()

vn_driver::~vn_driver ( )

References free_rpo_vn(), m_avail, and m_bb_to_rpo.

Member Function Documentation

◆ DISABLE_COPY_AND_ASSIGN()

vn_driver::DISABLE_COPY_AND_ASSIGN ( vn_driver )
private

References vn_driver().

◆ finalize()

unsigned vn_driver::finalize ( bitmap inserted_exprs = NULL)
Finish elimination and return the TODO flags.   

References eliminate_with_rpo_vn(), m_avail, m_bb_to_rpo, m_eliminate, m_todo, NULL, rpo_avail, rpo_vn_valueize(), todo(), vn_bb_to_rpo, and vn_valueize.

Referenced by do_rpo_vn().

◆ todo()

unsigned vn_driver::todo ( ) const
inline

References m_todo.

Referenced by do_rpo_vn(), and finalize().

Field Documentation

◆ m_avail

class rpo_elim* vn_driver::m_avail
private

Referenced by finalize(), vn_driver(), and ~vn_driver().

◆ m_bb_to_rpo

int* vn_driver::m_bb_to_rpo
private

Referenced by finalize(), vn_driver(), and ~vn_driver().

◆ m_eliminate

bool vn_driver::m_eliminate
private

Referenced by finalize(), and vn_driver().

◆ m_todo

unsigned vn_driver::m_todo
private

Referenced by finalize(), todo(), and vn_driver().


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