5 #ifndef ILANG_MCM_SC_MANUAL_H__
6 #define ILANG_MCM_SC_MANUAL_H__
58 :
MemoryModel(ctx, _cstrlist, shared_states, private_states,
70 #endif // ILANG_MCM_SC_MANUAL_H__
ScTraceStep(const InstrPtr &inst, ZExprVec &cstr, z3::context &ctx, size_t pos)
To create a trace step (for inst, we don't need it for facet/init)
TraceStep::TraceStepPtrSet TraceStepPtrSet
Type of trace steps, we need to collect the set of trace steps (WRITE)
Definition: memory_model.h:206
Expr::ExprPtr ExprPtr
Pointer type for normal use of Expr.
Definition: expr.h:138
std::map< std::string, StateNameSet > ILANameStateNameSetMap
Type of map ila-name to state-set.
Definition: memory_model.h:222
static InterIlaUnroller::MemoryModelCreator ScModel
Declaration of memory model creator that chooses Sc.
Definition: sc_manual.h:35
std::set< ScTraceStepPtr > ScTraceStepPtrSet
Type of trace steps, we need to collect the set of trace steps (WRITE)
Definition: sc_manual.h:31
Class of TSO trace step.
Definition: sc_manual.h:14
The class for trace step (an instance of instruction) As in the unrolling, there may be multiple inst...
Definition: memory_model.h:28
std::shared_ptr< TraceStep > TraceStepPtr
Type of trace step pointer.
Definition: sc_manual.h:17
virtual void ApplyAxioms() override
To apply the axioms, the complete program should be given.
std::function< MemoryModelPtr(z3::context &, ZExprVec &, const StateNameSet &, const ILANameStateNameSetMap &, const InstrLvlAbsPtr &)> MemoryModelCreator
Definition: inter_ila_unroller.h:64
z3::context & ctx() const
Return the context (for variable creation)
Definition: memory_model.h:260
TraceStep::ZExprVec ZExprVec
Type for containing a vector of z3::expr.
Definition: memory_model.h:202
Instr::InstrPtr InstrPtr
Pointer type for normal use of Instr.
Definition: instr.h:132
virtual void SetFinalProperty(const ExprPtr &property) override
Set the final property, this is implementation-specific.
virtual void RegisterSteps(size_t regIdx, const InstrVec &_inst_seq) override
InstrPtr inst() const
Return the associated instruction for facet / instruction event.
TraceStep::TraceStepPtr TraceStepPtr
Type of trace step shared pointers.
Definition: memory_model.h:204
Class of TSO.
Definition: sc_manual.h:26
std::vector< InstrPtr > InstrVec
Type of an instruction vector to represent a sequence.
Definition: memory_model.h:214
InstrLvlAbs::InstrLvlAbsPtr InstrLvlAbsPtr
Pointer type for normal use of InstrLvlAbs.
Definition: instr_lvl_abs.h:326
TraceStep::StateNameSet StateNameSet
Type of set of state names.
Definition: memory_model.h:210
z3::context & ctx()
Return the context (for variable creation)
Definition: memory_model.h:154
virtual void FinishRegisterSteps() override
The base class for memory models.
Definition: memory_model.h:196
Sc(z3::context &ctx, ZExprVec &_cstrlist, const StateNameSet &shared_states, const ILANameStateNameSetMap &private_states, const InstrLvlAbsPtr &global_ila_ptr)
Constructor.
Definition: sc_manual.h:55
std::shared_ptr< ScTraceStep > ScTraceStepPtr
Type of trace step pointer.
Definition: sc_manual.h:29
std::vector< ZExpr > ZExprVec
Type for containing a set of z3::expr.
Definition: memory_model.h:36