Main Page Modules Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages
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.
|
Compounds |
class | assignmentSet |
class | memoryAccess |
class | memoryAssignment |
class | memoryDef |
class | memorydef_key |
class | memoryUse |
class | orderedDefs |
class | orderedUses |
class | vector_set |
| Vector-based set. More...
|
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_key > | memorydef_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_map > | merge_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 assignment_map::iterator assignment_map_p
|
|
typedef memoryblock_set::const_iterator memoryblock_set_cp
|
|
|
Definition at line 117 of file memoryaccess.h.
Referenced by Pointers::assignment_operator(), constantAnalyzer::evaluate_points_to(), procedureInfo::lookup_merge_point(), mergePoints::lookup_merge_point(), Pointers::pass_external_inputs(), Pointers::pass_external_outputs(), Pointers::print_memoryblock_def_set(), Pointers::print_memoryblock_set(), Pointers::process_merge_point(), memoryBlock::reachable_blocks(), and Pointers::star_operator(). |
typedef memoryblock_set::iterator memoryblock_set_p
|
|
|
Definition at line 116 of file memoryaccess.h.
Referenced by memoryBlock::add_complicit_assignment(), Pointers::assignment_operator(), constantAnalyzer::at_assignment(), constantAnalyzer::at_conservative_procedure_call(), Pointers::at_deallocation(), constantAnalyzer::at_parameter_pass(), Pointers::call_operator(), livenessAnalyzer::collectDefs(), Pointers::conservative_procedure_call(), Pointers::determine_call_targets(), Pointers::dot_operator(), Pointers::eval(), Pointers::generate_uses(), procedureInfo::get_pending_changes(), Pointers::mark_as_indexed(), Pointers::process_local_changes(), constantAnalyzer::rebuild_flowvalue(), precisionAnalyzer::record(), Pointers::record_external_inputs_and_outputs(), precisionAnalyzer::report(), Pointers::star_operator(), memoryBlock::top_most_container(), and memoryBlock::top_most_containers(). |
|
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.
Referenced by orderedDefs::def_list(). |
typedef memorydef_list::const_iterator memorydef_list_cp
|
|
typedef memorydef_list::iterator memorydef_list_p
|
|
typedef memorydef_location_map::const_iterator memorydef_location_map_cp
|
|
typedef memorydef_location_map::iterator memorydef_location_map_p
|
|
typedef memorydef_set::const_iterator memorydef_set_cp
|
|
typedef memorydef_set::iterator memorydef_set_p
|
|
typedef memoryuse_list::const_iterator memoryuse_list_cp
|
|
typedef memoryuse_list::iterator memoryuse_list_p
|
|
typedef memoryuse_map::const_iterator memoryuse_map_cp
|
|
typedef memoryuse_map::iterator memoryuse_map_p
|
|
typedef memoryuse_map::value_type memoryuse_map_pair
|
|
typedef memoryuse_set::const_iterator memoryuse_set_cp
|
|
typedef memoryuse_set::iterator memoryuse_set_p
|
|
typedef merge_use_map::const_iterator merge_use_map_cp
|
|
typedef merge_use_map::iterator merge_use_map_p
|
|
typedef enum Multiplicity Multiplicity
|
|
typedef pred_use_map::const_iterator pred_use_map_cp
|
|
typedef pred_use_map::iterator pred_use_map_p
|
|
Enumeration Type Documentation
|
Multiplicity values.
- Enumeration values:
-
Top |
|
Deallocated |
|
Unallocated |
|
Single |
|
Bounded |
|
Unbounded |
|
Error |
|
Definition at line 158 of file memoryaccess.h. |
|