Go to the documentation of this file.
74 RefMap::const_iterator iter =
references_.find(&ins);
100 __FILE__, __LINE__,
"InstructionReferenceManager::replace()",
101 "Instruction reference to be replaced not found.");
115 iterb->second->
merge(*itera->second);
129 assert(iter->second != NULL);
131 iter->second->nullify();
152 RefMap::const_iterator iter =
references_.find(&ins);
156 return iter->second->count();
168 assert (iter->second->count() == 0);
169 delete iter->second; iter->second = NULL;
189 <<
"Reference to an instruction " << &targetInstruction
190 <<
" that is not in a Procedure." << std::endl;
195 <<
"Reference to an instruction " << &targetInstruction
196 <<
" that is not in a Program." << std::endl;
void setInstruction(Instruction &ins)
virtual Instruction & firstInstruction() const
#define PRINT_VAR(VARIABLE__)
RefMap references_
Instruction references to maintain.
InstructionReference createReference(Instruction &ins)
InstructionReferenceManager()
static std::ostream & logStream()
#define assert(condition)
virtual ~InstructionReferenceManager()
bool hasReference(Instruction &ins) const
void replace(Instruction &insA, Instruction &insB)
CodeSnippet & parent() const
unsigned int referenceCount(Instruction &ins) const
InstructionAddress location() const
bool isInProcedure() const
void merge(InstructionReferenceImpl &other)
void referenceDied(Instruction *ins)
virtual bool isInProgram() const