Sequentialization is one of the most promising approaches for the symbolic analysis of concurrent programs. However, existing sequentializations assume sequential consistency, which modern hardware architectures no longer guarantee. In this paper, we describe an approach to embed weak memory models within eager sequentializations. Our approach is based on the separation of intra-thread computations from inter-thread communications by means of a shared memory abstraction (SMA). We give details of SMA implementations for the SC, TSO, and PSO memory models that are based on the idea of individual memory unwindings. We use our approach to implement a new, efficient BMC-based bug finding tool for multi-threaded C programs under SC, TSO, or PSO b...
Writing concurrent programs with shared memory is often not trivial. Correctly synchronising the thr...
A memory model for a concurrent imperative programming lan-guage specifies which writes to shared va...
The design of concurrent programs is error-prone due to the interaction between concurrently executi...
Sequentialization translates concurrent programs into equivalent nondeterministic sequential program...
Sequentialization is one of the most promising approaches for the symbolic analysis of concurrent pr...
With the spread of multi-core systems, the need to write concurrent programs in order to take advant...
We describe an approach to design static analysis and verification tools for concurrent programs tha...
Lazy sequentialization is one of the most effective approaches for the bounded verification of concu...
Developing correct, scalable and efficient concurrent programs is a complex and difficult task, due ...
For efficiency reasons, most modern processor architectures allow the reordering of CPU instructions...
We describe a new sequentialization-based approach to the symbolic verification of multi-threaded pr...
Abstract. We implement a new sequentialization algorithm for multi-threaded C programs with dynamic ...
Modern shared memory multiprocessors permit reordering of memory operations for performance reasons....
Concurrency libraries can facilitate the development of multi-threaded programs by providing concurr...
In order to achieve greater computational power, processors now contain several cores that work in p...
Writing concurrent programs with shared memory is often not trivial. Correctly synchronising the thr...
A memory model for a concurrent imperative programming lan-guage specifies which writes to shared va...
The design of concurrent programs is error-prone due to the interaction between concurrently executi...
Sequentialization translates concurrent programs into equivalent nondeterministic sequential program...
Sequentialization is one of the most promising approaches for the symbolic analysis of concurrent pr...
With the spread of multi-core systems, the need to write concurrent programs in order to take advant...
We describe an approach to design static analysis and verification tools for concurrent programs tha...
Lazy sequentialization is one of the most effective approaches for the bounded verification of concu...
Developing correct, scalable and efficient concurrent programs is a complex and difficult task, due ...
For efficiency reasons, most modern processor architectures allow the reordering of CPU instructions...
We describe a new sequentialization-based approach to the symbolic verification of multi-threaded pr...
Abstract. We implement a new sequentialization algorithm for multi-threaded C programs with dynamic ...
Modern shared memory multiprocessors permit reordering of memory operations for performance reasons....
Concurrency libraries can facilitate the development of multi-threaded programs by providing concurr...
In order to achieve greater computational power, processors now contain several cores that work in p...
Writing concurrent programs with shared memory is often not trivial. Correctly synchronising the thr...
A memory model for a concurrent imperative programming lan-guage specifies which writes to shared va...
The design of concurrent programs is error-prone due to the interaction between concurrently executi...