9 #ifndef IR_SEG_SEGLOADMEMNODE_H
10 #define IR_SEG_SEGLOADMEMNODE_H
12 #include <llvm/IR/BasicBlock.h>
15 #include <unordered_map>
17 #include "IR/SEG/SymbolicExprGraph.h"
21 class PersistedSEGLoadMemNode;
29 virtual void assembleSEGObject(std::map<int, SEGObject *> &FuncSEGObjMap);
34 std::unordered_map<const SEGNodeBase *, SEGRegionNode *> MatchingConditions;
42 virtual PersistedSEGObject *createPersistedObject()
const;
48 MatchingConditions[Node] = Cond;
53 auto It = MatchingConditions.find(Node);
54 if (It != MatchingConditions.end()) {
62 void dot(raw_fd_ostream &O)
const;
64 virtual std::string getAuxiliaryDebugStr()
const {
65 std::stringstream Result;
67 for (
auto &It : MatchingConditions) {
69 Result << Index <<
". value is from file:" << It.first->getSrcFile()
70 <<
", the line is:" << It.first->getSrcLine() <<
";";
72 Result << Index <<
". value is from file: NA"
73 <<
", the line is: NA"
83 return N->getKind() == SEGOBJK_LoadMem;