Summary
The CONVEX Application Compiler brings a new level of optimization technology to the software development process. The Application Compiler is the first practical application of interprocedural optimization research in an integrated language-independent compiler product and presents the current state-of-the-art in compiler technology, Fig. 1 and [1].
It is designed to increase automatic optimization, thus minimizing the time and resources required to obtain an optimized program. Extensive optimization reports make additional program optimization easier and faster.
Interprocedural optimization is the automatic analysis of the relationships and interfaces between all of the subroutines, functions, or procedures within an executable program. Conventional compilers, such as current FORTRAN and C compilers, analyze only the relationships within the single procedure being compiled. Conventional optimizing compilers construct a dataflow representation of the individual procedure. The Application Compiler constructs this same representation for each procedure in the executable program and stores it in a database of procedures. It merges all of the individual procedure information into a dataflow structure representing the entire program.
Having visibility of the entire program, the Application Compiler then applies interprocedural optimization techniques to make decisions and do optimizations on the program that are not possible with traditional compilation methods. An example is automatic inlining for FORTRAN and C. Inlining removes the call overhead for frequently used procedures and eliminates calls within loops to increase performance. Heuristics are being applied to determine which calls are most profitable to inline.
The Application Compiler also uses information derived from this analysis to perform extensive error checking. This error checking reports common coding mistakes that conventional compilers and lint-like tools cannot detect. Because it understands the side effects associated with procedures it can parallelize loops with calls. By interprocedural array section analysis it determines the sections of all arrays used and assigned both directly and indirectly. The dependency analyzer then determines whether no dependencies exist or if synchronization code can be used.
Since the Application Compiler knows the geometry of array accesses it can determine how the array accesses are distributed and aligned for best performance in a future MPP system.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
CONVEX Application Compiler Users Guide, First Ed., Document Nr. 720-004030-001, CONVEX Corp., 1991, Richardson, TX
Gannon, D., Guarna. V, and Lee, J., Static Analysis and Runtime Support for Parallel Execution of C in Languages and Compilers for Parallel Computing, MIT Press 1990.
Metzger, R., Using C for Supercomputing. In: Proceeding of Software Development 89, pp 107–124.
Press, W., Flannery, B., Teuklosky, S., Vertering, W., Numerical Recipes in C. Cambridge University Press, 1988.
Graf, I., Interprocedural Analysis: An Advanced Optimization Technique for Large Simulation Packages. In: Heller, M.R. (Ed.): Automotive Simulation 91, Springer 1991.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1992 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Baetke, F., Metzger, B., Smith, P. (1992). The CONVEX Application Compiler - A Major Step into the Direction of Automatic Parallelization. In: Meuer, HW. (eds) Supercomputer ’92. Informatik aktuell. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-77661-8_13
Download citation
DOI: https://doi.org/10.1007/978-3-642-77661-8_13
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-55709-8
Online ISBN: 978-3-642-77661-8
eBook Packages: Springer Book Archive