C-Breeze
C Compiler Infrastructure

[ Project home page]

memoryaccess.h File Reference

#include <set>
#include "pointeroptions.h"
#include "location.h"
#include <ext/hash_map>
#include <ext/hash_set>

Go to the source code of this file.

Typedefs

typedef vector_set< memoryBlock * > memoryblock_set
 Memory block set.
typedef memoryblock_set::iterator memoryblock_set_p
typedef memoryblock_set::const_iterator memoryblock_set_cp
typedef vector< memorydef_keymemorydef_list
 Memory def list.
typedef memorydef_list::iterator memorydef_list_p
typedef memorydef_list::const_iterator memorydef_list_cp
typedef set< memoryDef * > memorydef_set
 Memory def set.
typedef memorydef_set::iterator memorydef_set_p
typedef memorydef_set::const_iterator memorydef_set_cp
typedef map< Location *, memoryDef * > memorydef_location_map
typedef memorydef_location_map::iterator memorydef_location_map_p
typedef memorydef_location_map::const_iterator memorydef_location_map_cp
typedef vector< memoryUse * > memoryuse_list
typedef memoryuse_list::iterator memoryuse_list_p
typedef memoryuse_list::const_iterator memoryuse_list_cp
typedef set< memoryUse * > memoryuse_set
typedef memoryuse_set::iterator memoryuse_set_p
typedef memoryuse_set::const_iterator memoryuse_set_cp
typedef enum Multiplicity Multiplicity
 Multiplicity values.
typedef map< Location *, memoryUse * > memoryuse_map
typedef memoryuse_map::iterator memoryuse_map_p
typedef memoryuse_map::const_iterator memoryuse_map_cp
typedef memoryuse_map::value_type memoryuse_map_pair
typedef map< basicblockNode *,
memoryUse * > 
pred_use_map
typedef pred_use_map::iterator pred_use_map_p
typedef pred_use_map::const_iterator pred_use_map_cp
typedef map< Location *, pred_use_mapmerge_use_map
typedef merge_use_map::iterator merge_use_map_p
typedef merge_use_map::const_iterator merge_use_map_cp
typedef pair< Location *,
memoryBlock * > 
assignment_key
typedef map< assignment_key,
memoryAssignment * > 
assignment_map
typedef assignment_map::iterator assignment_map_p

Enumerations

enum  Multiplicity {
  Top, Deallocated, Unallocated, Single,
  Bounded, Unbounded, Error
}
 Multiplicity values. More...


Typedef Documentation

typedef pair< Location *, memoryBlock *> assignment_key
 

Definition at line 593 of file memoryaccess.h.

typedef map< assignment_key, memoryAssignment * > assignment_map
 

Definition at line 595 of file memoryaccess.h.

typedef assignment_map::iterator assignment_map_p
 

Definition at line 596 of file memoryaccess.h.

typedef vector_set< memoryBlock * > memoryblock_set
 

Memory block set.

This class is used for many things in the analyzer, but in particular for points-to sets. Since these tend to be small, a vector is actually more efficient that using the "set" STL container.

Definition at line 115 of file memoryaccess.h.

typedef memoryblock_set::const_iterator memoryblock_set_cp
 

Definition at line 117 of file memoryaccess.h.

typedef memoryblock_set::iterator memoryblock_set_p
 

Definition at line 116 of file memoryaccess.h.

typedef vector< memorydef_key > memorydef_list
 

Memory def list.

This is a critical data structure: it keeps an ordered list of definitions of a memoryBlock so that they can be searched very quickly to find the nearest dominating definition. To do this, I've create a special class called memorydef_key, which duplicates some of the information needed to perform the dominance test.

Definition at line 127 of file memoryaccess.h.

typedef memorydef_list::const_iterator memorydef_list_cp
 

Definition at line 129 of file memoryaccess.h.

typedef memorydef_list::iterator memorydef_list_p
 

Definition at line 128 of file memoryaccess.h.

typedef map< Location *, memoryDef * > memorydef_location_map
 

Definition at line 138 of file memoryaccess.h.

typedef memorydef_location_map::const_iterator memorydef_location_map_cp
 

Definition at line 140 of file memoryaccess.h.

typedef memorydef_location_map::iterator memorydef_location_map_p
 

Definition at line 139 of file memoryaccess.h.

typedef set< memoryDef * > memorydef_set
 

Memory def set.

Definition at line 134 of file memoryaccess.h.

typedef memorydef_set::const_iterator memorydef_set_cp
 

Definition at line 136 of file memoryaccess.h.

typedef memorydef_set::iterator memorydef_set_p
 

Definition at line 135 of file memoryaccess.h.

typedef vector< memoryUse * > memoryuse_list
 

Definition at line 144 of file memoryaccess.h.

typedef memoryuse_list::const_iterator memoryuse_list_cp
 

Definition at line 146 of file memoryaccess.h.

typedef memoryuse_list::iterator memoryuse_list_p
 

Definition at line 145 of file memoryaccess.h.

typedef map< Location *, memoryUse * > memoryuse_map
 

Definition at line 450 of file memoryaccess.h.

typedef memoryuse_map::const_iterator memoryuse_map_cp
 

Definition at line 452 of file memoryaccess.h.

typedef memoryuse_map::iterator memoryuse_map_p
 

Definition at line 451 of file memoryaccess.h.

typedef memoryuse_map::value_type memoryuse_map_pair
 

Definition at line 453 of file memoryaccess.h.

typedef set< memoryUse * > memoryuse_set
 

Definition at line 148 of file memoryaccess.h.

typedef memoryuse_set::const_iterator memoryuse_set_cp
 

Definition at line 150 of file memoryaccess.h.

typedef memoryuse_set::iterator memoryuse_set_p
 

Definition at line 149 of file memoryaccess.h.

typedef map< Location *, pred_use_map > merge_use_map
 

Definition at line 459 of file memoryaccess.h.

typedef merge_use_map::const_iterator merge_use_map_cp
 

Definition at line 461 of file memoryaccess.h.

typedef merge_use_map::iterator merge_use_map_p
 

Definition at line 460 of file memoryaccess.h.

typedef enum Multiplicity Multiplicity
 

Multiplicity values.

typedef map< basicblockNode *, memoryUse *> pred_use_map
 

Definition at line 455 of file memoryaccess.h.

typedef pred_use_map::const_iterator pred_use_map_cp
 

Definition at line 457 of file memoryaccess.h.

typedef pred_use_map::iterator pred_use_map_p
 

Definition at line 456 of file memoryaccess.h.


Enumeration Type Documentation

enum Multiplicity
 

Multiplicity values.

Enumeration values:
Top 
Deallocated 
Unallocated 
Single 
Bounded 
Unbounded 
Error 

Definition at line 158 of file memoryaccess.h.


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