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 memory_order get_mo() const { return order; }
21 FuncNode * get_func_node() const { return func_node; }
23 bool add_pred(FuncInst * other);
24 bool add_succ(FuncInst * other);
26 FuncInst * search_in_collision(ModelAction *act);
28 func_inst_list_mt * get_collisions() { return &collisions; }
29 func_inst_list_mt * get_preds() { return &predecessors; }
30 func_inst_list_mt * get_succs() { return &successors; }
33 bool is_write() const;
39 //ModelAction * const action;
40 const char * position;
46 /* collisions store a list of FuncInsts with the same position
47 * but different action types. For example, CAS is broken down
48 * as three different atomic operations in cmodelint.cc */
49 func_inst_list_mt collisions;
51 func_inst_list_mt predecessors;
52 func_inst_list_mt successors;
55 #endif /* __FUNCINST_H__ */