Skip to main content

The CONVEX Application Compiler - A Major Step into the Direction of Automatic Parallelization

  • Conference paper
  • 26 Accesses

Part of the book series: Informatik aktuell ((INFORMAT))

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   54.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   69.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. CONVEX Application Compiler Users Guide, First Ed., Document Nr. 720-004030-001, CONVEX Corp., 1991, Richardson, TX

    Google Scholar 

  2. 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.

    Google Scholar 

  3. Metzger, R., Using C for Supercomputing. In: Proceeding of Software Development 89, pp 107–124.

    Google Scholar 

  4. Press, W., Flannery, B., Teuklosky, S., Vertering, W., Numerical Recipes in C. Cambridge University Press, 1988.

    MATH  Google Scholar 

  5. Graf, I., Interprocedural Analysis: An Advanced Optimization Technique for Large Simulation Packages. In: Heller, M.R. (Ed.): Automotive Simulation 91, Springer 1991.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics