C-Breeze
C Compiler Infrastructure

[ Project home page]

UnificationBasedPtr Class Reference

#include <unification.h>

Inheritance diagram for UnificationBasedPtr:

Walker List of all members.

Public Types

enum  Order { Preorder, Postorder, Both }
 The order in which AST Nodes should be visited. More...
enum  Depth { Subtree, NodeOnly }
 Which Nodes in the AST tree should be visited. More...

Public Member Functions

Unify_ECRecr (declNode *decl) const
Unify_ECRecr (threeAddrNode *alloc_site) const
UnifyTypeproctype (procNode *p)
void createProcBlock (procNode *, memoryModel &, procLocation *)
virtual void mark_alloc (stmtNode *stmt, declNode *source_decl, declNode *target_decl)
void ensure_no_bottom (Unify_ECR *tao, declNode *decl, UnifyType *parent)
virtual bool isField (declNode *f, bool &from_annotation) const
Unify_ECRecrField (UnifyType *container, declNode *field, bool field_from_annotation)
Unify_ECRecrDeref (UnifyType *container)
Alphastring_alpha (constNode *con)
set< Unify_ECR * > unique_ecr () const
procNodesynthetic_proc (declNode *d)
void print_ecr ()
Accessors
Methods to get and set fields in the class.

Order order () const
 Return the order in which Nodes of an AST should be visited.
Depth depth () const
 Return which Nodes of an AST should be visited.
"at_" methods
These methods define the functions that should be performed when different classes of Nodes are encountered in the AST. The most specific "at_" method that matches a given Node's class will be called.

virtual void at_node (Node *the_node, Order ord)
virtual void at_def (defNode *the_def, Order ord)
virtual void at_subdecl (subdeclNode *the_subdecl, Order ord)
virtual void at_type (typeNode *the_type, Order ord)
virtual void at_prim (primNode *the_prim, Order ord)
virtual void at_tdef (tdefNode *the_tdef, Order ord)
virtual void at_ptr (ptrNode *the_ptr, Order ord)
virtual void at_array (arrayNode *the_array, Order ord)
virtual void at_func (funcNode *the_func, Order ord)
virtual void at_sue (sueNode *the_sue, Order ord)
virtual void at_struct (structNode *the_struct, Order ord)
virtual void at_union (unionNode *the_union, Order ord)
virtual void at_enum (enumNode *the_enum, Order ord)
virtual void at_expr (exprNode *the_expr, Order ord)
virtual void at_index (indexNode *the_index, Order ord)
virtual void at_const (constNode *the_const, Order ord)
virtual void at_id (idNode *the_id, Order ord)
virtual void at_binary (binaryNode *the_binary, Order ord)
virtual void at_unary (unaryNode *the_unary, Order ord)
virtual void at_cast (castNode *the_cast, Order ord)
virtual void at_comma (commaNode *the_comma, Order ord)
virtual void at_ternary (ternaryNode *the_ternary, Order ord)
virtual void at_call (callNode *the_call, Order ord)
virtual void at_initializer (initializerNode *the_initializer, Order ord)
virtual void at_stmt (stmtNode *the_stmt, Order ord)
virtual void at_block (blockNode *the_block, Order ord)
virtual void at_basicblock (basicblockNode *the_basicblock, Order ord)
virtual void at_exprstmt (exprstmtNode *the_exprstmt, Order ord)
virtual void at_target (targetNode *the_target, Order ord)
virtual void at_label (labelNode *the_label, Order ord)
virtual void at_case (caseNode *the_case, Order ord)
virtual void at_selection (selectionNode *the_selection, Order ord)
virtual void at_if (ifNode *the_if, Order ord)
virtual void at_switch (switchNode *the_switch, Order ord)
virtual void at_loop (loopNode *the_loop, Order ord)
virtual void at_while (whileNode *the_while, Order ord)
virtual void at_do (doNode *the_do, Order ord)
virtual void at_for (forNode *the_for, Order ord)
virtual void at_jump (jumpNode *the_jump, Order ord)
virtual void at_goto (gotoNode *the_goto, Order ord)
virtual void at_continue (continueNode *the_continue, Order ord)
virtual void at_break (breakNode *the_break, Order ord)
virtual void at_return (returnNode *the_return, Order ord)
virtual void at_attrib (attribNode *the_attrib, Order ord)
virtual void at_operand (operandNode *the_oper, Order ord)
virtual void at_conditiongoto (conditiongotoNode *the_condgoto, Order ord)
virtual void at_text (textNode *the_text, Order ord)

Static Public Member Functions

static UnificationBasedPtranalyze_all (Linker &)
static bool reachable (UnifyType *src, UnifyTypes &targets, UnifyTypes &visited)
static bool compatible_type (typeNode *, typeNode *)

Static Public Attributes

static int unify_points_to_max

Protected Member Functions

 UnificationBasedPtr (Linker &l)
void at_unit (unitNode *u, Order)
void at_proc (procNode *, Order)
void at_decl (declNode *, Order)
void at_suespec (suespecNode *, Order)
void at_threeAddr (threeAddrNode *, Order)
void at_allocation (threeAddrNode *, Unify_Size)
void at_call (threeAddrNode *, Unify_Size)
void at_initializer (initializerNode *init, typeNode *init_type, Unify_ECR *init_ecr)
void mergeOperand (operandNode *lhs, operandNode *rhs, Unify_Size)
Alphaalpha (operandNode *, Unify_Size)
Unify_ECRecr (operandNode *, Unify_Size, Unify_Offset **offset=NULL)
Unify_ECRecr1 (declNode *decl)
void join (Alpha *a1, Alpha *a2, bool *recursion_detected=NULL)
void join (Unify_ECR *e1, Unify_ECR *e2, bool *recursion_detected=NULL)
void join (Lambda *l1, Lambda *l2)
void settype (Unify_ECR *e, UnifyType *t)
void settype (Lambda *l, int n, int m, Unify_ECR **t, Unify_ECR *r, bool ellipse)
void ensure_sim_obj (Unify_ECR *tao, Unify_Size &s)
Unify_Structureensure_struct_obj (Unify_ECR *tao, suespecNode *sue, bool redo_pending=false)
void expand (Unify_ECR *e)
void promote (Unify_ECR *e, Unify_Size &s)
void collapse (Unify_ECR *e)
void make_unknown (Unify_Offset *o)
void unless_zero (Unify_Offset *o, Unify_ECR *tao)
void cjoin (Unify_Size &s, Unify_ECR *e1, Unify_ECR *e2)
UnifyTypeunify (UnifyType *t1, UnifyType *t2)
bool make_compatible (declSet n, Unify_Structure *s, Unify_ECR *container, bool force=false)
void merge_EltMap (UnifyType *t1, UnifyType *t2, Unify_Structure *)
void finalize ()
procNodecreate_synthetic_proc (declNode *)
declNodeunique_field_defn (declNode *d)
suespecNodefield2sue (declNode *d)
virtual bool annotation_returns_object (procNode *proc) const
virtual void annotation_call_arg (procNode *, int arg, typeNode *, Unify_ECR *)
virtual void annotation_call_arg (procNode *, int arg, typeNode *, Alpha *)
virtual void annotation_ret_val (procNode *, Unify_ECR *taoR, unitNode *unit)
virtual void annotation_init_global (declNode *global)

Static Protected Member Functions

static bool is_va_list (declNode *decl)

Protected Attributes

TREE map< declNode *, Unify_ECR * > _ecr
TREE map< procNode *, UnifyType * > _proctype
TREE map< threeAddrNode *,
Unify_ECR * > 
_alloc
TREE map< constNode *, Alpha * > _string_alpha
TREE int _dismantler_tmp
TREE map< declNode *, suespecNode * > _field2sue
TREE map< declNode *, decl_list_fieldpos
TREE set< suespecNode * > _unique_sue
TREE set< suespecNode * > _visited_sue
TREE map< declNode *, declNode * > _unique_field_defn
map< threeAddrNode *, UnifyType * > _ptr_call
unitNodecur_unit
procNodecur_proc
bool inside_call_func
bool finalizing
bool serve_again
bool new_pending
set< Unify_Pending * > more_pending
Linkerlinker
map< declNode *, procNode * > _synthetic_proc
set< procNode * > _analyzed_proc
map< declNode *, int > _assignments
map< declNode *, bool > _uses

Member Enumeration Documentation

enum Walker::Depth [inherited]
 

Which Nodes in the AST tree should be visited.

Enumeration values:
Subtree  The entire AST should be traversed.
NodeOnly  Only the root Node should be visited.

Definition at line 155 of file walker.h.

enum Walker::Order [inherited]
 

The order in which AST Nodes should be visited.

Enumeration values:
Preorder  Nodes should be visited before their children.
Postorder  Nodes should be visited after their children.
Both  Nodes should be visited both before and after their children.

Definition at line 147 of file walker.h.


Constructor & Destructor Documentation

UnificationBasedPtr::UnificationBasedPtr Linker l  )  [inline, protected]
 

Definition at line 448 of file unification.h.


Member Function Documentation

Alpha* UnificationBasedPtr::alpha operandNode ,
Unify_Size 
[protected]
 

static UnificationBasedPtr* UnificationBasedPtr::analyze_all Linker  )  [static]
 

virtual void UnificationBasedPtr::annotation_call_arg procNode ,
int  arg,
typeNode ,
Alpha
[inline, protected, virtual]
 

Definition at line 505 of file unification.h.

virtual void UnificationBasedPtr::annotation_call_arg procNode ,
int  arg,
typeNode ,
Unify_ECR
[inline, protected, virtual]
 

Definition at line 504 of file unification.h.

virtual void UnificationBasedPtr::annotation_init_global declNode global  )  [inline, protected, virtual]
 

Definition at line 507 of file unification.h.

virtual void UnificationBasedPtr::annotation_ret_val procNode ,
Unify_ECR taoR,
unitNode unit
[inline, protected, virtual]
 

Definition at line 506 of file unification.h.

virtual bool UnificationBasedPtr::annotation_returns_object procNode proc  )  const [inline, protected, virtual]
 

Definition at line 503 of file unification.h.

void UnificationBasedPtr::at_allocation threeAddrNode ,
Unify_Size 
[protected]
 

virtual void Walker::at_array arrayNode the_array,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in TreeChecker, and print_walker.

Definition at line 254 of file walker.h.

References Walker::at_type().

virtual void Walker::at_attrib attribNode the_attrib,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in print_walker.

Definition at line 365 of file walker.h.

References Walker::at_stmt().

virtual void Walker::at_basicblock basicblockNode the_basicblock,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in print_walker, LivenessWalker, LivenessComments, and reachingDefinitionsWalker.

Definition at line 314 of file walker.h.

References Walker::at_block().

virtual void Walker::at_binary binaryNode the_binary,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in gcWalker, id_lookup_walker, TreeChecker, and print_walker.

Definition at line 287 of file walker.h.

References Walker::at_expr().

virtual void Walker::at_block blockNode the_block,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in scope_walker, and print_walker.

Definition at line 311 of file walker.h.

References Walker::at_stmt().

Referenced by Walker::at_basicblock().

virtual void Walker::at_break breakNode the_break,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in ref_fix_walker, set_container_walker, TreeChecker, and print_walker.

Definition at line 359 of file walker.h.

References Walker::at_jump().

virtual void Walker::at_call callNode the_call,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in id_lookup_walker, Linker, ref_fix_walker, TreeChecker, and print_walker.

Definition at line 302 of file walker.h.

References Walker::at_expr().

void UnificationBasedPtr::at_call threeAddrNode ,
Unify_Size 
[protected]
 

virtual void Walker::at_case caseNode the_case,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in ref_fix_walker, semcheck_walker, set_container_walker, TreeChecker, and print_walker.

Definition at line 326 of file walker.h.

References Walker::at_target().

virtual void Walker::at_cast castNode the_cast,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in TreeChecker, and print_walker.

Definition at line 293 of file walker.h.

References Walker::at_expr().

virtual void Walker::at_comma commaNode the_comma,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in TreeChecker, and print_walker.

Definition at line 296 of file walker.h.

References Walker::at_expr().

virtual void Walker::at_conditiongoto conditiongotoNode the_condgoto,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in TreeChecker, print_walker, LivenessWalker, and LivenessComments.

Definition at line 371 of file walker.h.

References Walker::at_goto().

virtual void Walker::at_const constNode the_const,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in TreeChecker, and print_walker.

Definition at line 281 of file walker.h.

References Walker::at_index().

virtual void Walker::at_continue continueNode the_continue,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in ref_fix_walker, set_container_walker, TreeChecker, and print_walker.

Definition at line 356 of file walker.h.

References Walker::at_jump().

void UnificationBasedPtr::at_decl declNode ,
Order 
[protected, virtual]
 

Reimplemented from Walker.

virtual void Walker::at_def defNode the_def,
Order  ord
[inline, virtual, inherited]
 

Definition at line 230 of file walker.h.

References Walker::at_node().

Referenced by Walker::at_decl(), and Walker::at_proc().

virtual void Walker::at_do doNode the_do,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in print_walker.

Definition at line 344 of file walker.h.

References Walker::at_loop().

virtual void Walker::at_enum enumNode the_enum,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in enum_value_walker, and id_lookup_walker.

Definition at line 269 of file walker.h.

References Walker::at_sue().

virtual void Walker::at_expr exprNode the_expr,
Order  ord
[inline, virtual, inherited]
 

Definition at line 275 of file walker.h.

References Walker::at_node().

Referenced by Walker::at_binary(), Walker::at_call(), Walker::at_cast(), Walker::at_comma(), Walker::at_index(), Walker::at_initializer(), Walker::at_operand(), Walker::at_ternary(), and Walker::at_unary().

virtual void Walker::at_exprstmt exprstmtNode the_exprstmt,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in semcheck_walker, and print_walker.

Definition at line 317 of file walker.h.

References Walker::at_stmt().

virtual void Walker::at_for forNode the_for,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in semcheck_walker, TreeChecker, and print_walker.

Definition at line 347 of file walker.h.

References Walker::at_loop().

virtual void Walker::at_func funcNode the_func,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in scope_walker, TreeChecker, print_walker, and has_struct_walker.

Definition at line 257 of file walker.h.

References Walker::at_type().

virtual void Walker::at_goto gotoNode the_goto,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in goto_label_walker, fix_goto_walker, ref_fix_walker, TreeChecker, ProcWalker, and print_walker.

Definition at line 353 of file walker.h.

References Walker::at_jump().

Referenced by Walker::at_conditiongoto().

virtual void Walker::at_id idNode the_id,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in callGraph, id_lookup_walker, Linker, name_mangle_walker, ref_fix_walker, TreeChecker, and print_walker.

Definition at line 284 of file walker.h.

References Walker::at_index().

virtual void Walker::at_if ifNode the_if,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in TreeChecker, and print_walker.

Definition at line 332 of file walker.h.

References Walker::at_selection().

virtual void Walker::at_index indexNode the_index,
Order  ord
[inline, virtual, inherited]
 

Definition at line 278 of file walker.h.

References Walker::at_expr().

Referenced by Walker::at_const(), and Walker::at_id().

virtual void Walker::at_initializer initializerNode the_initializer,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in TreeChecker, and print_walker.

Definition at line 305 of file walker.h.

References Walker::at_expr().

void UnificationBasedPtr::at_initializer initializerNode init,
typeNode init_type,
Unify_ECR init_ecr
[protected]
 

virtual void Walker::at_jump jumpNode the_jump,
Order  ord
[inline, virtual, inherited]
 

Definition at line 350 of file walker.h.

References Walker::at_stmt().

Referenced by Walker::at_break(), Walker::at_continue(), Walker::at_goto(), and Walker::at_return().

virtual void Walker::at_label labelNode the_label,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in goto_label_walker, name_mangle_walker, TreeChecker, ProcWalker, and print_walker.

Definition at line 323 of file walker.h.

References Walker::at_target().

virtual void Walker::at_loop loopNode the_loop,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in semcheck_walker, set_container_walker, TreeChecker, and init_flowproblem_walker.

Definition at line 338 of file walker.h.

References Walker::at_stmt().

Referenced by Walker::at_do(), Walker::at_for(), and Walker::at_while().

virtual void Walker::at_node Node the_node,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in gcWalker, goto_label_walker, set_container_walker, sue_complete_walker, TreeChecker, and df_number_walker.

Definition at line 223 of file walker.h.

Referenced by Walker::at_def(), Walker::at_expr(), Walker::at_stmt(), Walker::at_text(), Walker::at_type(), and Walker::at_unit().

virtual void Walker::at_operand operandNode the_oper,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in TreeChecker, and print_walker.

Definition at line 368 of file walker.h.

References Walker::at_expr().

virtual void Walker::at_prim primNode the_prim,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in print_walker.

Definition at line 245 of file walker.h.

References Walker::at_type().

void UnificationBasedPtr::at_proc procNode ,
Order 
[protected, virtual]
 

Reimplemented from Walker.

virtual void Walker::at_ptr ptrNode the_ptr,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in print_walker.

Definition at line 251 of file walker.h.

References Walker::at_type().

virtual void Walker::at_return returnNode the_return,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in ref_fix_walker, semcheck_walker, set_container_walker, TreeChecker, print_walker, LivenessWalker, and LivenessComments.

Definition at line 362 of file walker.h.

References Walker::at_jump().

virtual void Walker::at_selection selectionNode the_selection,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in semcheck_walker.

Definition at line 329 of file walker.h.

References Walker::at_stmt().

Referenced by Walker::at_if(), and Walker::at_switch().

virtual void Walker::at_stmt stmtNode the_stmt,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in init_flowproblem_walker, and LivenessWalker.

Definition at line 308 of file walker.h.

References Walker::at_node().

Referenced by Walker::at_attrib(), Walker::at_block(), Walker::at_exprstmt(), Walker::at_jump(), Walker::at_loop(), Walker::at_selection(), Walker::at_target(), and Walker::at_threeAddr().

virtual void Walker::at_struct structNode the_struct,
Order  ord
[inline, virtual, inherited]
 

Definition at line 263 of file walker.h.

References Walker::at_sue().

virtual void Walker::at_subdecl subdeclNode the_subdecl,
Order  ord
[inline, virtual, inherited]
 

Definition at line 236 of file walker.h.

References Walker::at_decl().

virtual void Walker::at_sue sueNode the_sue,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in id_lookup_walker, print_walker, and has_struct_walker.

Definition at line 260 of file walker.h.

References Walker::at_type().

Referenced by Walker::at_enum(), Walker::at_struct(), and Walker::at_union().

void UnificationBasedPtr::at_suespec suespecNode ,
Order 
[protected, virtual]
 

Reimplemented from Walker.

virtual void Walker::at_switch switchNode the_switch,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in set_container_walker, TreeChecker, ProcWalker, print_walker, and init_flowproblem_walker.

Definition at line 335 of file walker.h.

References Walker::at_selection().

virtual void Walker::at_target targetNode the_target,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in init_flowproblem_walker.

Definition at line 320 of file walker.h.

References Walker::at_stmt().

Referenced by Walker::at_case(), and Walker::at_label().

virtual void Walker::at_tdef tdefNode the_tdef,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in id_lookup_walker, ref_fix_walker, TreeChecker, and print_walker.

Definition at line 248 of file walker.h.

References Walker::at_type().

virtual void Walker::at_ternary ternaryNode the_ternary,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in TreeChecker, and print_walker.

Definition at line 299 of file walker.h.

References Walker::at_expr().

virtual void Walker::at_text textNode the_text,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in print_walker.

Definition at line 377 of file walker.h.

References Walker::at_node().

void UnificationBasedPtr::at_threeAddr threeAddrNode ,
Order 
[protected, virtual]
 

Reimplemented from Walker.

virtual void Walker::at_type typeNode the_type,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in TreeChecker.

Definition at line 242 of file walker.h.

References Walker::at_node().

Referenced by Walker::at_array(), Walker::at_func(), Walker::at_prim(), Walker::at_ptr(), Walker::at_sue(), Walker::at_suespec(), and Walker::at_tdef().

virtual void Walker::at_unary unaryNode the_unary,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in TreeChecker, and print_walker.

Definition at line 290 of file walker.h.

References Walker::at_expr().

virtual void Walker::at_union unionNode the_union,
Order  ord
[inline, virtual, inherited]
 

Definition at line 266 of file walker.h.

References Walker::at_sue().

void UnificationBasedPtr::at_unit unitNode u,
Order 
[inline, protected, virtual]
 

Reimplemented from Walker.

Definition at line 452 of file unification.h.

References cur_unit.

virtual void Walker::at_while whileNode the_while,
Order  ord
[inline, virtual, inherited]
 

Reimplemented in print_walker.

Definition at line 341 of file walker.h.

References Walker::at_loop().

void UnificationBasedPtr::cjoin Unify_Size s,
Unify_ECR e1,
Unify_ECR e2
[protected]
 

void UnificationBasedPtr::collapse Unify_ECR e  )  [protected]
 

static bool UnificationBasedPtr::compatible_type typeNode ,
typeNode
[static]
 

procNode* UnificationBasedPtr::create_synthetic_proc declNode  )  [protected]
 

void UnificationBasedPtr::createProcBlock procNode ,
memoryModel ,
procLocation
 

Depth Walker::depth  )  const [inline, inherited]
 

Return which Nodes of an AST should be visited.

A value of SubTree specifies that the entire AST should be traversed. A value of NodeOnly specifies that only the root Node in the AST should be visited.

Definition at line 211 of file walker.h.

References Walker::_depth.

Unify_ECR* UnificationBasedPtr::ecr operandNode ,
Unify_Size  ,
Unify_Offset **  offset = NULL
[protected]
 

Unify_ECR* UnificationBasedPtr::ecr threeAddrNode alloc_site  )  const [inline]
 

Definition at line 383 of file unification.h.

References _alloc.

Unify_ECR* UnificationBasedPtr::ecr declNode decl  )  const [inline]
 

Definition at line 379 of file unification.h.

References _ecr.

Unify_ECR* UnificationBasedPtr::ecr1 declNode decl  )  [protected]
 

Unify_ECR* UnificationBasedPtr::ecrDeref UnifyType container  ) 
 

Unify_ECR* UnificationBasedPtr::ecrField UnifyType container,
declNode field,
bool  field_from_annotation
 

void UnificationBasedPtr::ensure_no_bottom Unify_ECR tao,
declNode decl,
UnifyType parent
 

void UnificationBasedPtr::ensure_sim_obj Unify_ECR tao,
Unify_Size s
[protected]
 

Unify_Structure* UnificationBasedPtr::ensure_struct_obj Unify_ECR tao,
suespecNode sue,
bool  redo_pending = false
[protected]
 

void UnificationBasedPtr::expand Unify_ECR e  )  [protected]
 

suespecNode* UnificationBasedPtr::field2sue declNode d  )  [inline, protected]
 

Definition at line 499 of file unification.h.

References _field2sue, and _unique_field_defn.

void UnificationBasedPtr::finalize  )  [protected]
 

static bool UnificationBasedPtr::is_va_list declNode decl  )  [static, protected]
 

virtual bool UnificationBasedPtr::isField declNode f,
bool &  from_annotation
const [inline, virtual]
 

Definition at line 398 of file unification.h.

References _unique_field_defn.

void UnificationBasedPtr::join Lambda l1,
Lambda l2
[protected]
 

void UnificationBasedPtr::join Unify_ECR e1,
Unify_ECR e2,
bool *  recursion_detected = NULL
[protected]
 

void UnificationBasedPtr::join Alpha a1,
Alpha a2,
bool *  recursion_detected = NULL
[protected]
 

bool UnificationBasedPtr::make_compatible declSet  n,
Unify_Structure s,
Unify_ECR container,
bool  force = false
[protected]
 

void UnificationBasedPtr::make_unknown Unify_Offset o  )  [protected]
 

virtual void UnificationBasedPtr::mark_alloc stmtNode stmt,
declNode source_decl,
declNode target_decl
[inline, virtual]
 

Definition at line 392 of file unification.h.

void UnificationBasedPtr::merge_EltMap UnifyType t1,
UnifyType t2,
Unify_Structure
[protected]
 

void UnificationBasedPtr::mergeOperand operandNode lhs,
operandNode rhs,
Unify_Size 
[protected]
 

Order Walker::order  )  const [inline, inherited]
 

Return the order in which Nodes of an AST should be visited.

Nodes can be visited before their children (Preorder), after their children (Postorder), or both (Both).

Definition at line 203 of file walker.h.

References Walker::_order.

Referenced by df_number_walker::at_node().

void UnificationBasedPtr::print_ecr  ) 
 

UnifyType* UnificationBasedPtr::proctype procNode p  )  [inline]
 

Definition at line 388 of file unification.h.

References _proctype.

void UnificationBasedPtr::promote Unify_ECR e,
Unify_Size s
[protected]
 

static bool UnificationBasedPtr::reachable UnifyType src,
UnifyTypes targets,
UnifyTypes visited
[static]
 

void UnificationBasedPtr::settype Lambda l,
int  n,
int  m,
Unify_ECR **  t,
Unify_ECR r,
bool  ellipse
[protected]
 

void UnificationBasedPtr::settype Unify_ECR e,
UnifyType t
[protected]
 

Alpha* UnificationBasedPtr::string_alpha constNode con  )  [inline]
 

Definition at line 408 of file unification.h.

References _string_alpha.

procNode* UnificationBasedPtr::synthetic_proc declNode d  )  [inline]
 

Definition at line 410 of file unification.h.

References _synthetic_proc.

UnifyType* UnificationBasedPtr::unify UnifyType t1,
UnifyType t2
[protected]
 

set<Unify_ECR*> UnificationBasedPtr::unique_ecr  )  const
 

declNode* UnificationBasedPtr::unique_field_defn declNode d  )  [inline, protected]
 

Definition at line 497 of file unification.h.

References _unique_field_defn.

void UnificationBasedPtr::unless_zero Unify_Offset o,
Unify_ECR tao
[protected]
 


Member Data Documentation

TREE map<threeAddrNode*, Unify_ECR*> UnificationBasedPtr::_alloc [protected]
 

Definition at line 420 of file unification.h.

Referenced by ecr().

set<procNode*> UnificationBasedPtr::_analyzed_proc [protected]
 

Definition at line 442 of file unification.h.

map<declNode*,int> UnificationBasedPtr::_assignments [protected]
 

Definition at line 444 of file unification.h.

TREE int UnificationBasedPtr::_dismantler_tmp [protected]
 

Definition at line 423 of file unification.h.

TREE map<declNode*, Unify_ECR*> UnificationBasedPtr::_ecr [protected]
 

Definition at line 418 of file unification.h.

Referenced by ecr().

TREE map<declNode*, suespecNode*> UnificationBasedPtr::_field2sue [protected]
 

Definition at line 425 of file unification.h.

Referenced by field2sue().

TREE map<declNode*, decl_list> UnificationBasedPtr::_fieldpos [protected]
 

Definition at line 426 of file unification.h.

TREE map<procNode*, UnifyType*> UnificationBasedPtr::_proctype [protected]
 

Definition at line 419 of file unification.h.

Referenced by proctype().

map<threeAddrNode*,UnifyType*> UnificationBasedPtr::_ptr_call [protected]
 

Definition at line 432 of file unification.h.

TREE map<constNode*,Alpha*> UnificationBasedPtr::_string_alpha [protected]
 

Definition at line 421 of file unification.h.

Referenced by string_alpha().

map<declNode*,procNode*> UnificationBasedPtr::_synthetic_proc [protected]
 

Definition at line 441 of file unification.h.

Referenced by synthetic_proc().

TREE map<declNode*, declNode*> UnificationBasedPtr::_unique_field_defn [protected]
 

Definition at line 430 of file unification.h.

Referenced by field2sue(), isField(), and unique_field_defn().

TREE set<suespecNode*> UnificationBasedPtr::_unique_sue [protected]
 

Definition at line 428 of file unification.h.

map<declNode*,bool> UnificationBasedPtr::_uses [protected]
 

Definition at line 446 of file unification.h.

TREE set<suespecNode*> UnificationBasedPtr::_visited_sue [protected]
 

Definition at line 428 of file unification.h.

procNode* UnificationBasedPtr::cur_proc [protected]
 

Definition at line 435 of file unification.h.

unitNode* UnificationBasedPtr::cur_unit [protected]
 

Definition at line 434 of file unification.h.

Referenced by at_unit().

bool UnificationBasedPtr::finalizing [protected]
 

Definition at line 437 of file unification.h.

bool UnificationBasedPtr::inside_call_func [protected]
 

Definition at line 436 of file unification.h.

Linker& UnificationBasedPtr::linker [protected]
 

Definition at line 440 of file unification.h.

set<Unify_Pending*> UnificationBasedPtr::more_pending [protected]
 

Definition at line 438 of file unification.h.

bool UnificationBasedPtr::new_pending [protected]
 

Definition at line 437 of file unification.h.

bool UnificationBasedPtr::serve_again [protected]
 

Definition at line 437 of file unification.h.

int UnificationBasedPtr::unify_points_to_max [static]
 

Definition at line 415 of file unification.h.


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

Generated on February 1, 2006
Back to the C-Breeze home page