Array SSA for Explicitly Parallel Programs
نویسنده
چکیده
The usefulness and applicability of the Static Single Assignment (SSA) framework is undisputed. SSA was originally crafted for sequential programs manipulating scalars, but it has been separately extended to parallel programs on the one hand, and to sequential programs with arrays on the other. In an Array SSA framework, arrays are precisely handled on an element-per-element basis. This paper proposes an Array SSA form for parallel programs with either weak or strong memory consistency, with event-based synchronization or mutual exclusion, with parallel sections or indexed parallel constructs. 1 Introduction and Related Work The usefulness and applicability of the Static Single Assignment (SSA) framework 5] is undisputed, and still is the subject of active research (e.g.,,22]). SSA was originally crafted for sequential programs manipulating scalars, but it has been extended recently to sequential programs with arrays 11]. In an Array SSA framework, arrays are precisely handled on an element-per-element basis. Array SSA was already successfully applied to traditional optimizations such as constant propagation 21]. Moreover, extending reaching deenition analyses (RDAs) and SSA to parallel programs has been a very active area of research too. Data ow analyses for parallel programs, and in particular reaching deenition analyses, were proposed in 8, 10, 3]. SSAs for various kinds of parallel language models were proposed in 17, 18, 14, 23]. Contrasting papers presenting an RDA with papers about SSA is easy. Several other issues, however, make the comparison of related papers a tricky task. Questions that arise include: 1. Does the paper apply element-wise to arrays? This issue is extremely important for scientiic and \high-performance" programming, but most papers apply to scalars only or to arrays considered as one single variable (exceptions include 3, 11, 21]). 2. Does the paper consider both the weak and the strong
منابع مشابه
Parallel Static Single Assignment Form and Constant Propagation for Explicitly Parallel Programs
Static Single Assignment (SSA) form has shown its usefulness for powerful code optimization techniques, such as constant propagation, of sequential programs. We introduce a new Parallel Static Single Assignment (PSSA) form and the transformation algorithm for the explicitly parallel programs with interleaving semantics and post-wait synchronization. The parallel construct considered in this pap...
متن کاملConcurrent SSA Form in the Presence of Mutual Exclusion
Most current compiler analysis techniques are unable to cope with the semantics introduced by explicit parallel and synchronization constructs in parallel programs. In this paper we propose new analysis and optimization techniques for compiling explicitly parallel programs that use mutual exclusion synchronization. We introduce the CSSAME form, an extension of the Concurrent Static Single Assig...
متن کاملEnabling Sparse Constant Propagation of Array Elements via Array SSA Form
We present a new static analysis technique based on Array SSA form [6]. Compared to traditional SSA form, the key enhancement in Array SSA form is that it deals with arrays at the element level instead of as monolithic objects. In addition, Array SSA form improves the φ function used for merging scalar or array variables in traditional SSA form. The computation of a φ function in traditional SS...
متن کاملConcurrent Static Single Assignment Form and Constant Propagation for Explicitly Parallel Programs
Static Single Assignment (SSA) form has shown its usefulness for powerful code optimization techniques such as constant propagation in sequential programs. We introduce the Concurrent Static Single Assignment (CSSA) form and the transformation algorithm for explicitly parallel programs with interleaving semantics and post-wait synchronization. The parallel construct considered in this paper is ...
متن کاملEnhanced Parallelization via Analyses and Transformations on Array SSA Form
Array SSA form is a version of SSA form that captures precise element-level data flow information for array variables. As an example of program analysis using Array SSA form, we presented a conditional constant propagation algorithm that can lead to discovery of a larger set of constants than previous algorithms that analyze only scalar variables [7]. As an example of program transformation usi...
متن کامل