9 typedef ModelList<FuncInst *> func_inst_list_mt;
13 FuncInst(ModelAction *act, FuncNode *func_node);
16 //ModelAction * get_action() const { return action; }
17 const char * get_position() const { return position; }
18 void * get_location() const { return location; }
19 action_type get_type() const { return type; }
20 FuncNode * get_func_node() const { return func_node; }
22 bool add_pred(FuncInst * other);
23 bool add_succ(FuncInst * other);
25 FuncInst * search_in_collision(ModelAction *act);
27 func_inst_list_mt * get_collisions() { return &collisions; }
28 func_inst_list_mt * get_preds() { return &predecessors; }
29 func_inst_list_mt * get_succs() { return &successors; }
32 bool is_write() const;
36 //ModelAction * const action;
37 const char * position;
42 /* collisions store a list of FuncInsts with the same position
43 * but different action types. For example, CAS is broken down
44 * as three different atomic operations in cmodelint.cc */
45 func_inst_list_mt collisions;
47 func_inst_list_mt predecessors;
48 func_inst_list_mt successors;
51 #endif /* __FUNCINST_H__ */