WRaP-IT

Objectives & Compilation Methods


Compilation methods

Classical compilation

Heavily using static cost models, classical compilation build a binary from a source file, using various intermediate form during the compilation process.

Iterative compilation

Because building detailed static cost models for modern dynamic architectures is no more possible, iterative compilation rely on the following mechanism :

  1. Using static cost models, choose which transformations to apply
  2. Choose some parameters for the tranformations
  3. Build an intermedite binary with those parameters
  4. Test the binary performances, and feedback those informations to the compiler
  5. Considering those performance informations, update the parameters and go to 3.
  6. When the performance is good enough, build the final binary.

Expert-driven iterative compilation

Within expert-driven iterative compilation framework, the feedback information described above are sent to the expert system.

Then the expert system can choose which transformation to apply from a pool of transformations all described the same way. Those choices are made based of some empiric results from "by hand" program optimisation (A decision tree based on the feedback information selects the relevant transformations)

Evolutinary algorithms may also help in the search of the optimal parameters or transformations.