Back to Search Start Over

Applying Loop Optimizations to Object-Oriented Abstractions Through General Classification of Array Semantics.

Authors :
Eigenmann, Rudolf
Zhiyuan Li
Midkiff, Samuel P.
Qing Yi
Quinlan, Dan
Source :
Languages & Compilers for High Performance Computing; 2005, p253-267, 15p
Publication Year :
2005

Abstract

Optimizing compilers have a long history of applying loop transformations to C and Fortran scientific applications. However, such optimizations are rare in compilers for object-oriented languages such as C++ or Java, where loops operating on user-defined types are left unoptimized due to their unknown semantics. Our goal is to reduce the performance penalty of using high-level object-oriented abstractions. We propose an approach that allows the explicit communication between programmers and compilers. We have extended the traditional Fortran loop optimizations with an open interface. Through this interface, we have developed techniques to automatically recognize and optimize user-defined array abstractions. In addition, we have developed an adapted constant-propagation algorithm to automatically propagate properties of abstractions. We have implemented these techniques in a C++ source-to-source translator and have applied them to optimize several kernels written using an array-class library. Our experimental results show that using our approach, applications using high-level abstractions can achieve comparable, and in cases superior, performance to that achieved by efficient low-level hand-written codes. [ABSTRACT FROM AUTHOR]

Details

Language :
English
ISBNs :
9783540280095
Database :
Supplemental Index
Journal :
Languages & Compilers for High Performance Computing
Publication Type :
Book
Accession number :
32904781
Full Text :
https://doi.org/10.1007/11532378_19