Back to Search
Start Over
Applying Loop Optimizations to Object-Oriented Abstractions Through General Classification of Array Semantics.
- 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