When optimizing a thread in a concurrent program (either done manually or by the compiler), it must be guaranteed that the resulting thread is a refinement of the original thread. Most definitions of refinement are formulated in terms of valid syntactic transformations on the program code, or in terms of valid transformations on thread execution traces. We present a new theory formulated instead in terms of state transitions between synchronization operations. Our new method shows refinement in more cases and leads to more efficient and simpler procedures for refinement checking. We develop the theory for the SCfor-DRF execution model (using locks for synchronization), and show that its application in compiler testing yields speedups of on ...
We analyse the validity of common optimisations on multi-threaded programs in two memory models—the ...
As parallel machines become part of the mainstream computing environment, compilers will need to app...
International audienceWe consider the verified compilation of high-level managed languages like Java...
When optimizing a thread in a concurrent program (either done manually or by the compiler), it must ...
Locks are a frequently used synchronisation mechanism in shared memory concurrent programs. They ar...
Modern systems involve a complex organization of computational processes sharing access to both proc...
We consider the verified compilation of high-level managed languages like Java or C # whose intermed...
While program correctness for compiled languages depends fundamentally on compiler correctness, comp...
We present a novel framework for automatic inference of efficient synchronization in concurrent prog...
We describe a novel use of abstract interpretation in which the abstract domain informs a runtime sy...
In recent years, we extended an older theory on the existence of refinement mappings. The present pa...
Efficient concurrent programs and data structures rarely em-ploy coarse-grained synchronization mech...
Shared-memory programmers traditionally assumed Sequential Consistency (SC), but modern systems have...
With the development of multi-core processors, concurrent programs are becoming more and more popula...
The most intuitive memory model for shared-memory multi-threaded programming is sequenti...
We analyse the validity of common optimisations on multi-threaded programs in two memory models—the ...
As parallel machines become part of the mainstream computing environment, compilers will need to app...
International audienceWe consider the verified compilation of high-level managed languages like Java...
When optimizing a thread in a concurrent program (either done manually or by the compiler), it must ...
Locks are a frequently used synchronisation mechanism in shared memory concurrent programs. They ar...
Modern systems involve a complex organization of computational processes sharing access to both proc...
We consider the verified compilation of high-level managed languages like Java or C # whose intermed...
While program correctness for compiled languages depends fundamentally on compiler correctness, comp...
We present a novel framework for automatic inference of efficient synchronization in concurrent prog...
We describe a novel use of abstract interpretation in which the abstract domain informs a runtime sy...
In recent years, we extended an older theory on the existence of refinement mappings. The present pa...
Efficient concurrent programs and data structures rarely em-ploy coarse-grained synchronization mech...
Shared-memory programmers traditionally assumed Sequential Consistency (SC), but modern systems have...
With the development of multi-core processors, concurrent programs are becoming more and more popula...
The most intuitive memory model for shared-memory multi-threaded programming is sequenti...
We analyse the validity of common optimisations on multi-threaded programs in two memory models—the ...
As parallel machines become part of the mainstream computing environment, compilers will need to app...
International audienceWe consider the verified compilation of high-level managed languages like Java...