Concept-based optimization

  • Authors:
  • Xiaolong Tang;Jaakko Järvi

  • Affiliations:
  • Texas A&M University;Texas A&M University

  • Venue:
  • LCSD '07 Proceedings of the 2007 Symposium on Library-Centric Software Design
  • Year:
  • 2007

Quantified Score

Hi-index 0.00

Visualization

Abstract

Production compilers' optimizers typically operate at low abstraction levels, transformation rules enacting on operations on built-in types only. Transformations at higher levels of abstraction, on operations of types defined in libraries or by the user, are typically not supported. Such high-level optimizations could, however, yield greater benefits than first lowering the abstractions and subjecting the result to low-level transformations. Built-in compiler optimizations can in principle apply to user-defined types, if those types possess properties that guarantee that the optimizing transformations preserve the meaning of the program. The problem is conveying this information to the compiler in a non-disruptive manner. This article describes a framework for specifying and implementing generic "concept-based optimizations." The framework is based on careful categorization, applying the generic programming paradigm, of the algebraic properties that justify particular optimizing transformations. Our framework is built on top of ConceptGCC, a compiler implementing the new language features concept and concept map of the forthcoming standard C++. Concepts describe the syntactic and semantic properties of classes of types, for which generic semantics-preserving transformations can be defined. Concept maps establish memberships to these classes, enabling the generic optimizations for specific user-defined types.