C-Breeze
C Compiler Infrastructure

[ Project home page]
Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

unification.h File Reference

#include "c_breeze.h"

Go to the source code of this file.

Compounds

class  UnificationBasedPtr
class  Unify_Pending
class  Alpha
class  Lambda
struct  Unify_Blank
class  Unify_ECR
struct  Unify_Object
class  Unify_Offset
class  Unify_Parents
class  Unify_Pendings
struct  Unify_Simple
class  Unify_Size
struct  Unify_Structure
class  UnifyType

Defines

#define T_bottom   UnifyType::bottom()
#define L_bottom   Lambda::bottom()
#define is_Sim_Obj(t)   assert(t->objTyp()==SIMPLE || t->objTyp()==OBJECT)
#define Sim_Obj_Size(t)   (t->objTyp()==SIMPLE ? t->simple()->s : t->object()->s)
#define Sim_Obj_Lambda(t)   (t->objTyp()==SIMPLE ? t->simple()->lambda : t->object()->lambda)
#define Sim_Obj_Alpha(t)   ((t->objTyp()==SIMPLE) ? t->simple()->alpha : t->object()->alpha)

Typedefs

typedef set< declNode * > declSet
typedef list< declSetFieldOrder
typedef list< typeNode * > FieldTypeOrder
typedef map< declSet, Unify_ECR * > EltMap
typedef Unify_Simple Unify_Simple
typedef Unify_Structure Unify_Structure
typedef Unify_Object Unify_Object
typedef Unify_Blank Unify_Blank
typedef set< Unify_Pending
* >::iterator 
Pendings_p
typedef set< UnifyType * > UnifyTypes

Enumerations

enum  Object_Typ {
  BOTTOM, SIMPLE, STRUCTURE, OBJECT,
  BLANK
}


Define Documentation

#define is_Sim_Obj      assert(t->objTyp()==SIMPLE || t->objTyp()==OBJECT)
 

Definition at line 510 of file unification.h.

Referenced by UnificationBasedPtr::at_allocation(), UnificationBasedPtr::at_call(), UnificationBasedPtr::at_proc(), UnificationBasedPtr::at_threeAddr(), UnificationBasedPtr::ecr(), UnificationBasedPtr::finalize(), UnificationBasedPtr::print_ecr(), and UnificationBasedPtr::unify().

#define L_bottom   Lambda::bottom()
 

Definition at line 332 of file unification.h.

#define Sim_Obj_Alpha      ((t->objTyp()==SIMPLE) ? t->simple()->alpha : t->object()->alpha)
 

Definition at line 514 of file unification.h.

Referenced by UnificationBasedPtr::at_allocation(), UnificationBasedPtr::at_call(), UnificationBasedPtr::at_decl(), UnificationBasedPtr::at_initializer(), UnificationBasedPtr::at_threeAddr(), UnificationBasedPtr::ecr(), UnificationBasedPtr::mergeOperand(), UnificationBasedPtr::print_ecr(), UnificationBasedPtr::reachable(), and UnificationBasedPtr::unify().

#define Sim_Obj_Lambda      (t->objTyp()==SIMPLE ? t->simple()->lambda : t->object()->lambda)
 

Definition at line 512 of file unification.h.

Referenced by UnificationBasedPtr::at_call(), UnificationBasedPtr::at_proc(), UnificationBasedPtr::finalize(), and UnificationBasedPtr::unify().

#define Sim_Obj_Size      (t->objTyp()==SIMPLE ? t->simple()->s : t->object()->s)
 

Definition at line 511 of file unification.h.

Referenced by UnificationBasedPtr::at_allocation(), UnificationBasedPtr::at_call(), UnificationBasedPtr::at_initializer(), UnificationBasedPtr::at_proc(), and UnificationBasedPtr::mergeOperand().

#define T_bottom   UnifyType::bottom()
 

Definition at line 331 of file unification.h.

Referenced by Lambda::addArg(), Alpha::Alpha(), UnificationBasedPtr::at_call(), and UnificationBasedPtr::at_proc().


Typedef Documentation

typedef set<declNode*> declSet
 

Definition at line 151 of file unification.h.

Referenced by UnificationBasedPtr::at_initializer(), UnificationBasedPtr::ecr(), UnificationBasedPtr::ecrField(), UnificationBasedPtr::make_compatible(), UnifyType::print(), and Unify_Structure::Unify_Structure().

typedef map<declSet,Unify_ECR*> EltMap
 

Definition at line 154 of file unification.h.

Referenced by UnificationBasedPtr::ensure_struct_obj(), UnificationBasedPtr::merge_EltMap(), UnificationBasedPtr::reachable(), and UnificationBasedPtr::unify().

typedef list<declSet> FieldOrder
 

Definition at line 152 of file unification.h.

Referenced by UnificationBasedPtr::merge_EltMap(), and UnificationBasedPtr::unify().

typedef list<typeNode*> FieldTypeOrder
 

Definition at line 153 of file unification.h.

Referenced by UnificationBasedPtr::unify().

typedef set<Unify_Pending*>::iterator Pendings_p
 

Definition at line 368 of file unification.h.

Referenced by UnificationBasedPtr::cjoin(), Unify_Pendings::cleanup(), UnificationBasedPtr::ecrDeref(), UnificationBasedPtr::ensure_struct_obj(), UnificationBasedPtr::finalize(), Unify_Pendings::insert(), UnificationBasedPtr::join(), UnificationBasedPtr::make_unknown(), Unify_ECR::print(), and UnificationBasedPtr::settype().

typedef struct Unify_Blank Unify_Blank
 

Referenced by UnificationBasedPtr::alpha(), UnificationBasedPtr::at_allocation(), UnificationBasedPtr::at_initializer(), UnificationBasedPtr::at_proc(), UnificationBasedPtr::cjoin(), UnificationBasedPtr::ensure_no_bottom(), UnificationBasedPtr::expand(), and Unify_ECR::Unify_ECR().

typedef struct Unify_Object Unify_Object
 

Referenced by UnificationBasedPtr::collapse(), UnificationBasedPtr::promote(), and UnificationBasedPtr::unify().

typedef struct Unify_Simple Unify_Simple
 

Referenced by UnificationBasedPtr::cjoin(), UnificationBasedPtr::ensure_sim_obj(), and UnificationBasedPtr::unify().

typedef struct Unify_Structure Unify_Structure
 

Referenced by UnificationBasedPtr::cjoin(), UnificationBasedPtr::ensure_struct_obj(), and UnificationBasedPtr::unify().

typedef set<UnifyType*> UnifyTypes
 

Definition at line 369 of file unification.h.


Enumeration Type Documentation

enum Object_Typ
 

Enumeration values:
BOTTOM 
SIMPLE 
STRUCTURE 
OBJECT 
BLANK 

Definition at line 224 of file unification.h.

Referenced by UnificationBasedPtr::cjoin(), UnificationBasedPtr::ensure_struct_obj(), UnifyType::objTyp(), and UnificationBasedPtr::unify().


Generated on August 27, 2003
Back to the C-Breeze home page