Alain Darte
Centre national de la recherche scientifique
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Alain Darte.
compilers, architecture, and synthesis for embedded systems | 2008
Florent Bouchez; Alain Darte; Fabrice Rastello
In the context of embedded systems, it is crucial to minimize memory transfers to reduce latency and power consumption. Stack access due to variable spilling during register allocation can be significantly reduced using aggressive live-range splitting. However, without a good (conservative) coalescing technique, the benefit of a good spilling may be lost due to the many register-to-register moves introduced. The challenge is thus to find a good trade-off between a too aggressive strategy that could make the interference graph uncolorable without more spilling, and a too conservative strategy that preserves colorability but leaves unnecessary moves. Two main approaches are iterated register coalescing by George and Appel and optimistic coalescing by Park and Moon. The first coalesces moves one by one conservatively. The second coalesces moves regardless of the colorability, then undo coalescings to reduce spilling. Focusing on greedy-k-colorable graphs---which are usually obtained after all spill decisions and, possibly, some split decisions---we show how these two approaches can be improved, optimistic coalescing with a more involved de-coalescing phase, incremental coalescing with a less pessimistic conservative technique. Unlike previous experiments, our results show that optimistic strategies do not outperform conservative ones. Our incremental conservative coalescing performs even better than our improved de-coalescing scheme and leads to about 15% improvement compared to the state-of-the-art optimistic coalescing.
joint international conference on vector and parallel processing parallel processing | 1994
Vincent Bouchitté; Pierre Boulet; Alain Darte; Yves Robert
This paper deals with the problem of evaluating HPF style array expressions on massively parallel distributed-memory computers (DMPCs). This problem has been addressed by Chat-terjee et al. under the strict hypothesis that computations and communications cannot overlap. As such a model appears to be unnecessarily restrictive for modeling state-of-the-art DMPCs, we relax the restriction and we allow for simultaneous computations and communications. This simple modiication has a tremendous eeect on the complexity of the optimal evaluation of array expressions. We rst show that even a simple version of the problem is NP-complete. Then, we present some heuristics, which we are able to guarantee in some very important cases in practice, namely for coarse-grain or ne grain computations.
ACM Transactions in Embedded Computing Systems | 2012
Benoit Boissinot; Philip Brisk; Alain Darte; Fabrice Rastello
The static single information (SSI) form is an extension of the static single assignment (SSA) form, a well-established compiler intermediate representation that has been successfully used for numerous compiler analysis and optimizations. Several interesting results have also been shown for SSI form concerning liveness analysis and the representation of live-ranges of variables, which could make SSI form appealing for just-in-time compilation. Unfortunately, we have uncovered several mistakes in the previous literature on SSI form, which, admittedly, is already quite sparse. This article corrects the mistakes that are most germane to SSI form. We first explain why the two definitions of SSI form proposed in past literature, first by C. S. Ananian, then by J. Singer, are not equivalent. Our main result is then to prove that basic blocks, and thus program points, can be totally ordered so that live-ranges of variables correspond to intervals on a line, a result that holds for both variants of SSI form. In other words, in SSI form, the intersection graph defined by live-ranges is an interval graph, a stronger structural property than for SSA form for which the intersection graph of live-ranges is chordal. Finally, we show how this structure of live-ranges can be used to simplify liveness analysis.
compiler construction | 2016
Alain Darte; Alexandre Isoard; Tomofumi Yuki
This work extends lattice-based memory allocation, an earlier work on memory reuse through array contraction. Such an optimization is used for optimizing high-level programming languages where storage mapping may be abstracted away from programmers and to complement code transformations that introduce intermediate buffers. The main motivation for this extension is to improve the handling of more general forms of specifications we see today, e.g., with loop tiling, pipelining, and other forms of parallelism available in explicitly-parallel languages. Specifically, we handle the case when conflicting constraints (those that describe the array indices that cannot share the same location) are specified as a (non-convex) union of polyhedra. The choice of directions (or basis) of array reuse becomes important when dealing with non-convex specifications. We extend the two dual approaches in the original work to handle unions of polyhedra, and to select a suitable basis. Our final approach relies on a combination of the two, also revealing their links with, on one hand, the construction of multi-dimensional schedules for parallelism and tiling (but with a fundamental difference that we identify) and, on the other hand, the construction of universal reuse vectors (UOV), which was only used so far in a specific context, for schedule-independent mapping.
Archive | 2011
Christophe Alias; Alain Darte; Alexandru Plesco
Archive | 2010
Christophe Alias; Alain Darte; Paul Feautrier; Laure Gonnord
Archive | 2008
Christophe Alias; Alain Darte; Paul Feautrier; Laure Gonnord; Clément Quinson
Archive | 2011
Christophe Alias; Alain Darte; Alexandru Plesco
Algorithmique Parallèle | 1992
Alain Darte; Yves Robert
Application Specific Array Processors 91 | 1991
Alain Darte; Tanguy Risset; Yves Robert