Results 1 
5 of
5
Efficiently computing static single assignment form and the control dependence graph
 ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS
, 1991
"... In optimizing compilers, data structure choices directly influence the power and efficiency of practical program optimization. A poor choice of data structure can inhibit optimization or slow compilation to the point that advanced optimization features become undesirable. Recently, static single ass ..."
Abstract

Cited by 839 (7 self)
 Add to MetaCart
In optimizing compilers, data structure choices directly influence the power and efficiency of practical program optimization. A poor choice of data structure can inhibit optimization or slow compilation to the point that advanced optimization features become undesirable. Recently, static single assignment form and the control dependence graph have been proposed to represent data flow and control flow propertiee of programs. Each of these previously unrelated techniques lends efficiency and power to a useful class of program optimization. Although both of these structures are attractive, the difficulty of their construction and their potential size have discouraged their use. We present new algorithms that efficiently compute these data structures for arbitrary control flow graphs. The algorithms use dominance frontiers, a new concept that may have other applications. We also give analytical and experimental evidence that all of these data structures are usually linear in the size of the original program. This paper thus presents strong evidence that these structures can be of practical use in optimization.
Parallelizing Compilers: Implementation and Effectiveness
, 1993
"... An important thank you goes to one of my undergraduate professors, Ken Kennedy. He proposed the project that led to this thesis, and my desire to know the answer gave me the strength to complete this work. I would like to thank the languages group at Kubota Pacific Computers, Inc. for showing me tha ..."
Abstract

Cited by 8 (0 self)
 Add to MetaCart
An important thank you goes to one of my undergraduate professors, Ken Kennedy. He proposed the project that led to this thesis, and my desire to know the answer gave me the strength to complete this work. I would like to thank the languages group at Kubota Pacific Computers, Inc. for showing me that I could indeed be productive and that all problems in compilers did not take years to solve. My sanity is thanks to all of my friends from dancing, "O " runs, and everything else. They made it possible to return to work each day and eventually to graduate. I owe my parents a great debt for encouraging me to stay in graduate school even when I thought I would never finish. Last, but certainly not least, I would like to thank Don Ramsey for reading many drafts and listening to many dry runs. His input greatly helped the presentation of this thesis in both oral and written forms.
A Uniform Internal Representation for HighLevel and InstructionLevel Transformations Eduard Ayguadé, Cristina Barrado, Jesús Labarta, David López, Susana Moreno, David Padua, and Mateo Valero
, 1995
"... this paper we describe a strategy that will make it possible, after applying a small number of changes, to represent lowlevel operations as part of the internal representation of a conventional sourcetosource Fortran translator. Briefly, our strategy is to represent the lowlevel operations as Fo ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
this paper we describe a strategy that will make it possible, after applying a small number of changes, to represent lowlevel operations as part of the internal representation of a conventional sourcetosource Fortran translator. Briefly, our strategy is to represent the lowlevel operations as Fortran statements. In this way, all the transformation and analysis routines available in the sourcetosource restructurer can be applied to the lowlevel representation of the program. The sourcetosource parallelizer could then be extended to include many traditional analysis and transformation steps, such as strength reduction and register allocation, not usually performed by this translator. The generation of machine instructions is done as a last step by a direct mapping from each Fortran statement onto one or more machine instructions. The sourcetosource restructurer is therefore extended into a complete compiler as shown in Figure 1. All transformations, including highlevel parallelization and the traditional scalar optimizations, can now be performed in a unified framework based on a single internal representation. One additional advantage of representing the lowlevel operations as Fortran statements is that the outcome of each transformation, both high and low level, can be trivially transformed into a Fortran program that could be executed to test the correctness of the transformation. Another approach that also uses a uniform representation for both highlevel parallelization and scalar optimizations was the one followed in the IBM Fortran compiler [ScKo86]. The main difference with our approach is that this compiler evolved from a traditional backend compiler which was extended to do some of the highlevel transformations usually performed in other systems by...
Ictíneo Implementation Manual
, 1997
"... This report is intended as a guide for users and developers of Ictíneo. It is organized as follows: section 2 outlines the implementation of the translation process, including some transformations that were not fully explained in [ABGL96] (complexes). Section 3 lists 3 ..."
Abstract
 Add to MetaCart
This report is intended as a guide for users and developers of Ictíneo. It is organized as follows: section 2 outlines the implementation of the translation process, including some transformations that were not fully explained in [ABGL96] (complexes). Section 3 lists 3
Perfect: Performance Evaluation for CostEffective Transformations, Report 2
, 1993
"... This report is the second in a projected series of periodic reports intended to present the results to date of the Perfect benchmarking effort and to encourage wider participation in the computing community. The effort was started in order to shed light on computer system performance for scientific ..."
Abstract
 Add to MetaCart
This report is the second in a projected series of periodic reports intended to present the results to date of the Perfect benchmarking effort and to encourage wider participation in the computing community. The effort was started in order to shed light on computer system performance for scientific and engineering applications. As vector and parallel machines have been introduced, wider and wider performance ranges have arisen on single machines. These performance instabilities make it impossible, now and in the future, to use a single number to evaluate a given machine, as has been done in the past. Another consequence of advanced architectures seems to be declining efficiency of computation, where efficiency is defined to be the ratio of delivered performance to peak performance. In this report we present our raw runtime data and the derived MFLOPS (Millions of Floating Point Operations Per Second) rates for each machine. We also show the instabilities we have observed. Efficiency can be derived from the data we present. An initial goal of the Perfect effort was to collect a set of easily portable Fortran codes. Obtaining and porting 13 codes to more than 30 machines has taken several years; however, porting to new machines and compilers has become much easier. The tables presented are organized by computational subject areas, and the data have been reduced by using either the sum of the runtimes or the harmonic mean of the MFLOPS rate. This is done to make comparisons easier and to demonstrate that there are large variations even in these numbers.