The Tiger compiler can easily be extended since it is component-based. Adding a new optimization phase, extending the syntax of the language, or replacing the back-end, is a matter of creating a new component and constructing a new compilation pipeline. This page lists some ideas for extensions.

Language extensions

  • Add a module system and separate compilation
  • Function arguments (escaping functions)
  • Objects
  • Add support for XML -- the TigerXML package is a first stab

Compiler improvements

  • Garbage collection
  • Target different platforms (e.g. Intel)
  • Improve spilling heuristics in the register allocator
  • Improve stack allocation of escaping variables (overlap variables that are not live at the same time)
  • Allocate non-escaping records and arrays on the stack
  • Optimization -- first experiments in the TigerOpt package
    • Add data-flow optimizations
    • Add loop optimizations
    • Inline functions
    • Partial evaluation / specialization
  • Parallel execution

-- EelcoVisser - 15 Sep 2002

Revision: r1.2 - 19 Sep 2002 - 21:25 - EelcoVisser
Tiger > ExtendingTheTigerCompiler
Copyright © 1999-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback