Optimizing Structures in Object Oriented Programs

K. Chen, Sun Chan, R.D.-C. Ju, Peng Tu · 2005

In this paper we demonstrate that effective structure optimization is essential to improve code quality and reduce compilation overhead for object-oriented programs. We propose to address this problem by using an effective representation of structure operation, folding indirect memory accesses to structure fields, flattening structures judiciously, and allowing more aggressive procedure inlining. These techniques enable the existing scalar optimizations, which were well tuned for the traditional imperative languages, to work effectively on object-oriented programs, allowing them to make better use of the performance enhancing-features available on modern processors. We have implemented this strategy in an SSA based global optimization framework in the Open Research Compiler, targeting the Itanium Processor Family. The experimental results with representative C++ benchmarks show that the applications' performance can be improved significantly. For instance, Eon's performance is improved by 35.6%, while the execution time of the Stepanov benchmark is reduced by a factor of 24.

Read the paper · More papers on PaperTik