Recognition and selection of idioms for code optimization

  title={Recognition and selection of idioms for code optimization},
  author={Lawrence Snyder},
  journal={Acta Informatica},
  • L. Snyder
  • Published 1 August 1982
  • Computer Science
  • Acta Informatica
SummaryIdioms are frequently occurring expressions that programmers use for logically primitive operations for which no primitive construct is available in the language. For example, in ALGOL-60 the expression abs(X − X ÷ 2 × 2) is idiomatic for parity of X. With optimization as a motive, two problems, idiom recognition and selection, are defined. Recognition is solved in O(n log n) time (worst case), O(n) time (average case) on a uniform cost RAM. Selection is solved in O(n) time. Ambiguity is… 
KernelFaRer: Replacing Native-Code Idioms with High-Performance Library Calls
KernelFaRer (Kernel Find & Replacer), an idiom recognizer implemented entirely in the existing LLVM compiler framework, is introduced, which replaces existing GEMM and SYR2K idioms with computations performed by BLAS, Eigen, MKL and BLIS.
Integrating code generation and peephole optimization
A grammar-driven peephole optimization algorithm that is particularly well suited to attributed-parsing code generators that corrects interrelated phase-ordering problems and produces a faster and smaller compiler back-end.
Pattern Driven Automatic Parallelization
This paper describes a knowledge based system for automatic parallelization of a wide class of sequential numeric codes operating on vectors and dense matrices and for execution on distributed memory
Program Procedure Pattern Mining Model for Legacy Code
A candidate pattern classification method is proposed to classify the candidate patterns into structure candidate patterns and structure relation candidate patterns using the data flow constraint, and finally the program procedure patterns are obtained.


Tentative compilation: A design for an APL compiler
The overall design of an APL compiler which achieves significant savings of temporary storage is outlined. A graphical intermediate representation for APL expressions is described. Transformations
Compiler Construction for Digital Computers
The techniques involved in writing compilers for high-level languages such as FORTRAN or PL/1, as well as semantic routines, are described.
Linear unification
A unification algorithm is described which tests a set of expressions for unifiability and which requires time and space which are only linear in the size of the input.
The Art of Computer Programming
The arrangement of this invention provides a strong vibration free hold-down mechanism while avoiding a large pressure drop to the flow of coolant fluid.
The APL idiom list
  • Yale University Computer Science Technical Report
  • 1977
APL programming guide: Vector optimizations
  • White Plains, New York: IBM DPD Scientific Marketing Report
  • 1978
The Art of Computer Programming, Vol. 3: Sorting and Searching
Computational logic: The unification computation
  • Machine Intelligence,
  • 1971