GCC Middle and Back End API Reference
const_and_copies Class Reference

#include <tree-ssa-scopedtables.h>

Collaboration diagram for const_and_copies:

Public Member Functions

 const_and_copies (void)
 
 ~const_and_copies (void)
 
void push_marker (void)
 
void pop_to_marker (void)
 
void record_const_or_copy (tree, tree)
 
void record_const_or_copy (tree, tree, tree)
 

Private Member Functions

void record_const_or_copy_raw (tree, tree, tree)
 
const_and_copiesoperator= (const const_and_copies &)
 
 const_and_copies (class const_and_copies &)
 

Private Attributes

vec< treem_stack
 

Detailed Description

This class defines an unwindable const/copy equivalence table
layered on top of SSA_NAME_VALUE/set_ssa_name_value.

Essentially it's just a stack of name,prev value pairs with a
special marker (NULL) to indicate unwind points.   

Constructor & Destructor Documentation

◆ const_and_copies() [1/2]

const_and_copies::const_and_copies ( void )
inline

References m_stack.

◆ ~const_and_copies()

const_and_copies::~const_and_copies ( void )
inline

References m_stack.

◆ const_and_copies() [2/2]

const_and_copies::const_and_copies ( class const_and_copies & )
private

Member Function Documentation

◆ operator=()

const_and_copies & const_and_copies::operator= ( const const_and_copies & )
private

◆ pop_to_marker()

void const_and_copies::pop_to_marker ( void )
Pop entries off the stack until we hit the NULL marker.
For each entry popped, use the SRC/DEST pair to restore
SRC to its prior value.   

References dump_file, dump_flags, m_stack, NULL, print_generic_expr(), set_ssa_name_value(), SSA_NAME_VALUE, and TDF_DETAILS.

Referenced by cprop_into_successor_phis().

◆ push_marker()

void const_and_copies::push_marker ( void )
inline

References m_stack, and NULL_TREE.

Referenced by cprop_into_successor_phis().

◆ record_const_or_copy() [1/2]

void const_and_copies::record_const_or_copy ( tree x,
tree y )

◆ record_const_or_copy() [2/2]

void const_and_copies::record_const_or_copy ( tree x,
tree y,
tree prev_x )
Record that X has the value Y and that X's previous value is PREV_X.

This variant follow's Y value chain.   

References record_const_or_copy_raw(), SSA_NAME_VALUE, TREE_CODE, and y.

◆ record_const_or_copy_raw()

void const_and_copies::record_const_or_copy_raw ( tree x,
tree y,
tree prev_x )
private
Record that X has the value Y and that X's previous value is PREV_X.

This variant does not follow the value chain for Y.   

References dump_file, dump_flags, m_stack, print_generic_expr(), set_ssa_name_value(), TDF_DETAILS, and y.

Referenced by record_const_or_copy().

Field Documentation

◆ m_stack

vec<tree> const_and_copies::m_stack
private

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