cprover
shared_bufferst::cfg_visitort Class Reference

#include <shared_buffers.h>

Collaboration diagram for shared_bufferst::cfg_visitort:
[legend]

Public Member Functions

 cfg_visitort (shared_bufferst &_shared, symbol_tablet &_symbol_table, goto_functionst &_goto_functions)
 
void weak_memory (value_setst &value_sets, const irep_idt &function, memory_modelt model)
 instruments the program for the pairs detected through the CFG More...
 

Protected Attributes

shared_bufferstshared_buffers
 
symbol_tabletsymbol_table
 
goto_functionstgoto_functions
 
unsigned current_thread
 
unsigned coming_from
 
unsigned max_thread
 
std::set< irep_idtpast_writes
 

Detailed Description

Definition at line 192 of file shared_buffers.h.

Constructor & Destructor Documentation

◆ cfg_visitort()

shared_bufferst::cfg_visitort::cfg_visitort ( shared_bufferst _shared,
symbol_tablet _symbol_table,
goto_functionst _goto_functions 
)
inline

Definition at line 208 of file shared_buffers.h.

References coming_from, current_thread, and max_thread.

Member Function Documentation

◆ weak_memory()

void shared_bufferst::cfg_visitort::weak_memory ( value_setst value_sets,
const irep_idt function,
memory_modelt  model 
)

instruments the program for the pairs detected through the CFG

Definition at line 1054 of file shared_buffers.cpp.

References shared_bufferst::affected_by_delay_set, shared_bufferst::assignment(), shared_bufferst::choice(), goto_programt::instructiont::code, coming_from, current_thread, messaget::debug(), shared_bufferst::delay_read(), shared_bufferst::det_flush(), rw_set_baset::empty(), messaget::eom(), shared_bufferst::varst::flush_delayed, shared_bufferst::flush_read(), Forall_goto_program_instructions, forall_rw_set_r_entries, forall_rw_set_w_entries, goto_programt::instructiont::function, code_function_callt::function(), goto_functionst::function_map, irept::get_bool(), codet::get_statement(), goto_functions, goto_program, INITIALIZE_FUNCTION, goto_programt::insert_before(), goto_programt::instructiont::is_assign(), shared_bufferst::is_buffered(), goto_programt::instructiont::is_end_thread(), is_fence(), goto_programt::instructiont::is_function_call(), is_lwfence(), goto_programt::instructiont::is_other(), goto_programt::instructiont::is_start_thread(), goto_programt::instructiont::make_atomic_begin(), max_thread, shared_bufferst::varst::mem_tmp, shared_bufferst::message, shared_bufferst::nondet_flush(), exprt::op1(), past_writes, pointer_type(), Power, PSO, shared_bufferst::varst::read_delayed, shared_bufferst::varst::read_delayed_var, RMO, shared_buffers, goto_programt::instructiont::source_location, goto_programt::instructiont::swap(), symbol_table, to_code_function_call(), to_symbol_expr(), TSO, shared_bufferst::varst::type, goto_programt::instructiont::type, messaget::warning(), and shared_bufferst::write().

Referenced by weak_memory().

Member Data Documentation

◆ coming_from

unsigned shared_bufferst::cfg_visitort::coming_from
protected

Definition at line 201 of file shared_buffers.h.

Referenced by cfg_visitort(), and weak_memory().

◆ current_thread

unsigned shared_bufferst::cfg_visitort::current_thread
protected

Definition at line 200 of file shared_buffers.h.

Referenced by cfg_visitort(), and weak_memory().

◆ goto_functions

goto_functionst& shared_bufferst::cfg_visitort::goto_functions
protected

Definition at line 197 of file shared_buffers.h.

Referenced by weak_memory().

◆ max_thread

unsigned shared_bufferst::cfg_visitort::max_thread
protected

Definition at line 202 of file shared_buffers.h.

Referenced by cfg_visitort(), and weak_memory().

◆ past_writes

std::set<irep_idt> shared_bufferst::cfg_visitort::past_writes
protected

Definition at line 205 of file shared_buffers.h.

Referenced by weak_memory().

◆ shared_buffers

shared_bufferst& shared_bufferst::cfg_visitort::shared_buffers
protected

Definition at line 195 of file shared_buffers.h.

Referenced by weak_memory().

◆ symbol_table

symbol_tablet& shared_bufferst::cfg_visitort::symbol_table
protected

Definition at line 196 of file shared_buffers.h.

Referenced by weak_memory().


The documentation for this class was generated from the following files: