Class Hierarchy   Compound List   File List   Header Files   Compound Members   File Members  

SuifObject Class Reference

The base object for all IR nodes in the SUIF representation. More...

#include <suifkernel/suif_object.h>

Class diagram for SuifObject:

Object SuifBrick AnnotableObject SuifObjectBrick StringBrick OwnedSuifObjectBrick IntegerBrick SymbolTableObject SymbolTable ScopedObject GlobalInformationBlock FileSetBlock Annote

List of all members.

Public Members

Static Public Members

Protected Members

Static Protected Members

Friends


Detailed Description

The base object for all IR nodes in the SUIF representation.


Member Function Documentation

virtual SuifObject * SuifObject::deep_clone (SuifEnv * suif_env = 0) const [virtual]

use the default system cloner to clone this object and all objects in the OWNERSHIP tree rooted at this object.

virtual SuifObject * SuifObject::shallow_clone (SuifEnv * suif_env = 0) const [virtual]

use the default system cloner to clone this object only.

all references that this object has to other SUIFObjects will be copied to the new clone

virtual SuifObject * SuifObject::get_parent () const [virtual]

Get the object's parent in the OWNERSHIP tree.

it MUST be the case that the PARENT also has a reference to this object. Any object removed from the tree must set its parent to zero and remove the reference to it from the parent.

virtual void SuifObject::set_parent (SuifObject * object) [virtual]

Set the object's parent.

It is an error to set the parent to a new object if the parent is NOT NULL.

WARNING
using this method leaves the system in an invalid state until the parent object pointer to this object is removed. Use this method with EXTREME caution

virtual ObjectFactory * SuifObject::get_object_factory () const [virtual]

Get the object factory that built this object.

virtual SuifEnv * SuifObject::get_suif_env () const [virtual]

Get the suif enviroment that built this object.

virtual void SuifObject::print_to_default () const [virtual]

output this object using the default system printer to the default system output.

virtual void SuifObject::print (ostream & output) const [virtual]

output this object using the default system printer to the output stream.

virtual String SuifObject::print_to_string () const [virtual]

output this object using the default system printer to a string.

virtual int SuifObject::replace (SuifObject * original, SuifObject * new_object, bool fuse_if_possible = false) [virtual]

replace this object with the new object.

This method will replace the parent pointer in this object and set the reference from it's parent to the new object. The new object may be NULL

virtual void SuifObject::verify_invariants (ErrorSubSystem * message_destination) [virtual]

A placeholder for a method that will verify various interal invariants on an object.

Invariants are those like

Currently, this method is not implemented

virtual void SuifObject::print (FormattedText & x) const [virtual]

This is an old print method to be used when no system printer is installed.

Reimplemented in WhileStatement, VoidType, VaStartStatement, VaStartOldStatement, VariableSymbol, VariableDefinition, ValueBlock, VaEndStatement, VaArgExpression, UnionType, UndefinedValueBlock, UnaryExpression, Type, TargetInformationBlock, SymbolTableObject, SymbolTable, SymbolAddressExpression, Symbol, SuifObjectBrick, SuifBrick, StructType, StringBrick, StoreVariableStatement, StoreStatement, StatementList, Statement, SelectExpression, ScSelectExpression, ScOrExpression, ScopeStatement, ScopedObject, ScAndExpression, ReturnStatement, RepeatValueBlock, ReferenceType, QualifiedType, ProcedureType, ProcedureSymbol, ProcedureDefinition, PointerType, ParameterSymbol, OwnedSuifObjectBrick, NumericType, NestingVariableSymbol, MultiWayBranchStatement, MultiValueBlock, MultiDimArrayType, MultiDimArrayExpression, MarkStatement, LoadVariableExpression, LoadValueBlockExpression, LoadExpression, LabelType, LabelLocationStatement, JumpStatement, JumpIndirectStatement, IntegerType, IntegerBrick, IntConstant, IfStatement, GroupType, GroupSymbolTable, GlobalInformationBlock, GeneralAnnote, ForStatement, FloatingPointType, FloatConstant, FileSetBlock, FileBlock, FieldSymbol, FieldAccessExpression, ExpressionValueBlock, Expression, ExecutionObject, EvalStatement, EnumeratedType, DoWhileStatement, DefinitionBlock, DataType, CProcedureType, Constant, CodeLabelSymbol, CInformationBlock, CForStatement, CExpression, CallStatement, CallExpression, ByteSizeOfExpression, ByteOffsetOfExpression, ByteAlignmentOfExpression, BrickAnnote, BranchStatement, BooleanType, BitSizeOfExpression, BitOffsetOfExpression, BitAlignmentOfExpression, BinaryExpression, BasicSymbolTable, ArrayType, ArrayReferenceExpression, Annote and AnnotableObject.

virtual Walker::ApplyStatus SuifObject::walk (Walker & walk) [virtual]

const LString & SuifObject::get_class_name () [static]

Reimplemented from Object.

Reimplemented in WhileStatement, VoidType, VaStartStatement, VaStartOldStatement, VariableSymbol, VariableDefinition, ValueBlock, VaEndStatement, VaArgExpression, UnionType, UndefinedValueBlock, UnaryExpression, Type, TargetInformationBlock, SymbolTableObject, SymbolTable, SymbolAddressExpression, Symbol, SuifObjectBrick, SuifBrick, StructType, StringBrick, StoreVariableStatement, StoreStatement, StatementList, Statement, SelectExpression, ScSelectExpression, ScOrExpression, ScopeStatement, ScopedObject, ScAndExpression, ReturnStatement, RepeatValueBlock, ReferenceType, QualifiedType, ProcedureType, ProcedureSymbol, ProcedureDefinition, PointerType, ParameterSymbol, OwnedSuifObjectBrick, NumericType, NestingVariableSymbol, MultiWayBranchStatement, MultiValueBlock, MultiDimArrayType, MultiDimArrayExpression, MarkStatement, LoadVariableExpression, LoadValueBlockExpression, LoadExpression, LabelType, LabelLocationStatement, JumpStatement, JumpIndirectStatement, IntegerType, IntegerBrick, IntConstant, IfStatement, GroupType, GroupSymbolTable, GlobalInformationBlock, GeneralAnnote, ForStatement, FloatingPointType, FloatConstant, FileSetBlock, FileBlock, FieldSymbol, FieldAccessExpression, ExpressionValueBlock, Expression, ExecutionObject, EvalStatement, EnumeratedType, DoWhileStatement, DefinitionBlock, DataType, CProcedureType, Constant, CodeLabelSymbol, CInformationBlock, CForStatement, CExpression, CallStatement, CallExpression, ByteSizeOfExpression, ByteOffsetOfExpression, ByteAlignmentOfExpression, BrickAnnote, BranchStatement, BooleanType, BitSizeOfExpression, BitOffsetOfExpression, BitAlignmentOfExpression, BinaryExpression, BasicSymbolTable, ArrayType, ArrayReferenceExpression, Annote and AnnotableObject.

SuifObject::SuifObject () [protected]

void SuifObject::constructorFunction (Address instance) [static, protected]

friend class SuifObject::SuifEnv [friend]


The documentation for this class was generated from the following file:
Generated at Mon Nov 22 19:43:49 1999 for NCI SUIF by doxygen  written by Dimitri van Heesch, © 1997-1999