Jason Eckhardt

Learn More
ÐThis paper presents a novel software pipelining approach, which is called Swing Modulo Scheduling (SMS). It generates schedules that are near optimal in terms of initiation interval, register requirements, and stage count. Swing Modulo Scheduling is a heuristic approach that has a low computational cost. This paper first describes the technique and(More)
Co-array Fortran (CAF) is an emerging model for scalable, global address space parallel programming that consists of a small set of extensions to the Fortran 90 programming language. Compared to MPI, the widely-used message-passing programming model, CAF's global address space programming model simplifies the development of single-program-multiple-data(More)
Previous work on semantics-based multi-stage programming (MSP) language design focused on <i>homogeneous</i> designs, where the generating and the generated languages are the same. Homogeneous designs simply add a hygienic quasi-quotation and evaluation mechanism to a base language. An apparent disadvantage of this approach is that the programmer is bound(More)
Techniques for global register allocation via graph coloring have been extensively studied and widely implemented in compiler frameworks. This paper examines a particular variant – the Callahan Koblenz allocator – and compares it to the Chaitin-Briggs graph coloring register allocator. Both algorithms were published in the 1990's, yet the academic(More)
— We present a graph coloring register allocator which uses an improved form of passive live range splitting to reduce the count of dynamic spill operations. Program structure is used to guide the global splitting of live ranges and to place split operations at infrequently executed portions of the program. We also optimistically reconsider spill decisions(More)
  • 1