peer-reviewedWe propose a new language-neutral primitive for the LLVM compiler, which provides efficient context switching and message passing between lightweight threads of control. The primitive, called SWAPSTACK, can be used by any language implementation based on LLVM to build higher-level language structures such as continuations, co-routines, and lightweight threads. As part of adding the primitives to LLVM, we have also added compiler support for passing parameters across context switches. Our modified LLVM compiler produces highly efficient code through a combination of exposing the context switching code to existing compiler optimizations, and adding novel compiler optimizations to further reduce the cost of context switches. To de...
On-Stack Replacement (OSR) is a technique for dynamically transferring execution between different v...
Presented at The Second ACM SIGPLAN Workshop on Transactional Computing (TRANSACT 07), Portland, Ore...
Architectures evolve quickly. The number of transistors available to chip designers doubles every 18...
We propose a new language-neutral primitive for the LLVM compiler, which provides efficient context ...
Multithreading is an important software modularization technique. However, it can incur substantial ...
Massively parallel architectures are gaining momentum thanks to the opportunities for both high perf...
Multithreading is an important software modularization technique. However, it can incur substantial ...
The final publication is available at www.springerlink.com.International audienceIn this paper, we i...
Higher-level parallel programming languages can be difficult to implement efficiently on parallel ma...
This paper examines the article ”Context Threading ” by Berndl, Vitae, Zaleski and Brown published i...
High-level, directive-based solutions are becoming the programming models (PMs) of the multi/many-co...
Most computer programs are concurrent ones: they need to perform several tasks at the same time. Thr...
As part of the Platform-Aware Compilation Environment (PACE) Project1, Operator Strength Reduction (...
We describe a new CSeq module for the verification of multi-threaded C programs with dynamic thread ...
Functional programming presents a relatively unexplored approach to achieving high- performance comp...
On-Stack Replacement (OSR) is a technique for dynamically transferring execution between different v...
Presented at The Second ACM SIGPLAN Workshop on Transactional Computing (TRANSACT 07), Portland, Ore...
Architectures evolve quickly. The number of transistors available to chip designers doubles every 18...
We propose a new language-neutral primitive for the LLVM compiler, which provides efficient context ...
Multithreading is an important software modularization technique. However, it can incur substantial ...
Massively parallel architectures are gaining momentum thanks to the opportunities for both high perf...
Multithreading is an important software modularization technique. However, it can incur substantial ...
The final publication is available at www.springerlink.com.International audienceIn this paper, we i...
Higher-level parallel programming languages can be difficult to implement efficiently on parallel ma...
This paper examines the article ”Context Threading ” by Berndl, Vitae, Zaleski and Brown published i...
High-level, directive-based solutions are becoming the programming models (PMs) of the multi/many-co...
Most computer programs are concurrent ones: they need to perform several tasks at the same time. Thr...
As part of the Platform-Aware Compilation Environment (PACE) Project1, Operator Strength Reduction (...
We describe a new CSeq module for the verification of multi-threaded C programs with dynamic thread ...
Functional programming presents a relatively unexplored approach to achieving high- performance comp...
On-Stack Replacement (OSR) is a technique for dynamically transferring execution between different v...
Presented at The Second ACM SIGPLAN Workshop on Transactional Computing (TRANSACT 07), Portland, Ore...
Architectures evolve quickly. The number of transistors available to chip designers doubles every 18...