Polaris: IDExpr Class Reference

IDExpr Class Reference

An expression representing a variable. More...

#include <IDExpr.h>

Inheritance diagram for IDExpr:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 IDExpr (const Type &e, const Symbol &name_sym)
 IDExpr (const IDExpr &e)
virtual ~IDExpr ()
 IDExpr code:.
virtual IDExproperator= (const IDExpr &)
virtual const Symbolsymbol () const
virtual Symbolsymbol ()
virtual void symbol (const Symbol &s)
 Access the symbol that this identifier is associated with.
virtual const Expressionsubstituted_guarded () const
virtual Expressionsubstituted_guarded ()
virtual Boolean substituted_valid () const
virtual void substituted (Expression *)
virtual Expressiongrab_substituted ()
 Access the expression representing the constant value that this variable may be safely replaced with.
virtual Expressionclone () const
 Return a copy of myself.
virtual int structures_OK () const
 Return 1 if my structures are in a valid state.
virtual void convert (BinRep &exprSet, Symtab &symtab)
virtual void print_debug (ostream &o, Boolean debug) const
 debug indicates whether it should contain extra fields
virtual const Symbolbase_variable_ref () const
 base_symbol If I am an IDExpr or an ArrayRefExpr, return the name of myself, otherwise return NULL.
virtual Symbolbase_variable_ref ()
 If the expression is an array reference, identifier, or substring, return the Symbol name of that expression.
virtual const ExprSignatureupdate_signature ()
virtual int node_compare (const Expression &ex) const
 See Expression.h.

Protected Member Functions

 IDExpr (const Type &e)
virtual Expression_divides_evenly (const Symbol *)
virtual Boolean _args_are_equal (Expression &, Boolean consider_side_effects)
virtual int exchange_expr (VDL &vdl)
 Create a node in the "expression" member and return the index.
virtual void relink_eptrs (ProgramUnit &p)
 Change pointers in IDExpr to point into the given ProgramUnit.

Protected Attributes

Symbol_symbol
Expression_substituted
Arc_type_arcs

Friends

class ExprTable
class DDgraph

Detailed Description

An expression representing a variable.

Polaris Expression

See also:
Expression/IDExpr.h

Expression/IDExpr.h

Expression.cc

Description

An IDExpr is the expression for an identifier within Polaris.

Definition at line 28 of file IDExpr.h.


Constructor & Destructor Documentation

IDExpr::IDExpr const Type e,
const Symbol name_sym
[inline]
 

Definition at line 95 of file IDExpr.h.

References _arcs, _substituted, _symbol, e, and ID_OP.

Referenced by clone().

IDExpr::IDExpr const IDExpr e  )  [inline]
 

Definition at line 104 of file IDExpr.h.

References _arcs, _substituted, _symbol, Expression::clone(), e, Expression::substituted_guarded(), Expression::substituted_valid(), and DistributeExpr::symbol().

IDExpr::~IDExpr  )  [virtual]
 

IDExpr code:.

Definition at line 4775 of file Expression.cc.

IDExpr::IDExpr const Type e  )  [inline, protected]
 

Definition at line 86 of file IDExpr.h.

References _arcs, _substituted, _symbol, e, and ID_OP.


Member Function Documentation

IDExpr & IDExpr::operator= const IDExpr  )  [virtual]
 

Definition at line 4790 of file Expression.cc.

References _arcs, _substituted, _symbol, Expression::clone(), e, Expression::substituted_guarded(), Expression::substituted_valid(), and DistributeExpr::symbol().

const Symbol & IDExpr::symbol  )  const [virtual]
 

Reimplemented from Expression.

Definition at line 4854 of file Expression.cc.

References _symbol.

Referenced by node_compare(), and update_signature().

Symbol & IDExpr::symbol  )  [virtual]
 

Reimplemented from Expression.

Definition at line 4860 of file Expression.cc.

References _symbol.

void IDExpr::symbol const Symbol s  )  [virtual]
 

Access the symbol that this identifier is associated with.

Reimplemented from Expression.

Definition at line 4866 of file Expression.cc.

References _symbol.

const Expression & IDExpr::substituted_guarded  )  const [virtual]
 

Reimplemented from Expression.

Definition at line 4810 of file Expression.cc.

References _substituted.

Referenced by find_substituted_id_exprs(), and fix_substituted().

Expression & IDExpr::substituted_guarded  )  [virtual]
 

Reimplemented from Expression.

Definition at line 4819 of file Expression.cc.

References _substituted.

Boolean IDExpr::substituted_valid  )  const [virtual]
 

Reimplemented from Expression.

Definition at line 4828 of file Expression.cc.

References _substituted, False, and True.

Referenced by find_substituted_id_exprs(), and fix_substituted().

void IDExpr::substituted Expression  )  [virtual]
 

Reimplemented from Expression.

Definition at line 4837 of file Expression.cc.

References _substituted, and e.

Expression * IDExpr::grab_substituted  )  [virtual]
 

Access the expression representing the constant value that this variable may be safely replaced with.

This constant value is determined by the constant propagation pass.

Reimplemented from Expression.

Definition at line 4846 of file Expression.cc.

References _substituted.

Expression * IDExpr::clone  )  const [virtual]
 

Return a copy of myself.

Implements Expression.

Definition at line 4784 of file Expression.cc.

References IDExpr().

int IDExpr::structures_OK  )  const [virtual]
 

Return 1 if my structures are in a valid state.

Implements Expression.

Definition at line 4872 of file Expression.cc.

References True.

void IDExpr::convert BinRep exprSet,
Symtab symtab
[virtual]
 

... The second argument of tuple pairs

Implements Expression.

Definition at line 4907 of file Expression.cc.

References _substituted, _symbol, Expression::empty_overflow(), Expression::get_type(), BinRep::is_integer(), BinRep::is_string(), Expression::make_overflow(), Type::set(), Expression::tableEntry(), BinRep::to_integer(), and BinRep::to_string().

void IDExpr::print_debug ostream &  o,
Boolean  debug
const [virtual]
 

debug indicates whether it should contain extra fields

Implements Expression.

Definition at line 4956 of file Expression.cc.

References _substituted, _symbol, convert_case(), and Symbol::name_ref().

const Symbol * IDExpr::base_variable_ref  )  const [virtual]
 

base_symbol If I am an IDExpr or an ArrayRefExpr, return the name of myself, otherwise return NULL.

Reimplemented from Expression.

Definition at line 11607 of file Expression.cc.

References _symbol.

Symbol * IDExpr::base_variable_ref  )  [virtual]
 

If the expression is an array reference, identifier, or substring, return the Symbol name of that expression.

Otherwise, return NULL.

Reimplemented from Expression.

Definition at line 11613 of file Expression.cc.

References _symbol.

const ExprSignature & IDExpr::update_signature  )  [virtual]
 

... _signature_live().merge( (int) type().data_type() ); ... _signature_live().merge( type().size() );

Reimplemented from Expression.

Definition at line 7224 of file Expression.cc.

References Expression::_signature_live(), ExprSignature::clear(), ExprSignature::merge(), Expression::op(), Expression::signature(), and symbol().

int IDExpr::node_compare const Expression ex  )  const [virtual]
 

See Expression.h.

Reimplemented from Expression.

Definition at line 7324 of file Expression.cc.

References Symbol::name_ref(), and symbol().

Expression * IDExpr::_divides_evenly const Symbol  )  [protected, virtual]
 

Reimplemented from Expression.

Definition at line 10685 of file Expression.cc.

virtual Boolean IDExpr::_args_are_equal Expression ,
Boolean  consider_side_effects
[protected, virtual]
 

Reimplemented from Expression.

int IDExpr::exchange_expr VDL vdl  )  [protected, virtual]
 

Create a node in the "expression" member and return the index.

Reimplemented from Expression.

Definition at line 4879 of file Expression.cc.

References Expression::exchange_expr(), BinRep::find_ref(), Set< T >::ins(), List< T >::ins_last(), and BinRep::to_tuple().

void IDExpr::relink_eptrs ProgramUnit p  )  [protected, virtual]
 

Change pointers in IDExpr to point into the given ProgramUnit.

Reimplemented from Expression.

Definition at line 4971 of file Expression.cc.

References _symbol, and Symbol::name_ref().


Friends And Related Function Documentation

friend class ExprTable [friend]
 

Definition at line 29 of file IDExpr.h.

friend class DDgraph [friend]
 

Reimplemented from Expression.

Definition at line 30 of file IDExpr.h.


Member Data Documentation

Symbol* IDExpr::_symbol [protected]
 

Definition at line 64 of file IDExpr.h.

Referenced by base_variable_ref(), convert(), IDExpr(), operator=(), print_debug(), relink_eptrs(), and symbol().

Expression* IDExpr::_substituted [protected]
 

Definition at line 65 of file IDExpr.h.

Referenced by convert(), grab_substituted(), IDExpr(), operator=(), print_debug(), substituted(), substituted_guarded(), and substituted_valid().

Arc_type* IDExpr::_arcs [protected]
 

Definition at line 66 of file IDExpr.h.

Referenced by IDExpr(), and operator=().


The documentation for this class was generated from the following files:
 © 1995-2005 University of Illinois, Urbana-Champaign. All rights reserved.  Fri Mar 25 23:07:31 2005