[PATCH] Add framework for iterative compilation to llvm

Radovan Obradovic Radovan.Obradovic at imgtec.com
Wed Jul 30 08:05:21 PDT 2014


This is a follow-up work on the iterative compilation framework
for clang/llvm. Previous discussion as well as the introduction to this
approach has been presented at:

http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-December/thread.html#68784

In this patch, the decision tree proxies are implemented as immutable
pass (as suggested by Hongbin Zheng) in order to avoid changes of
the base llvm classes. There is a new function level pass (ICSetCurrentFunc)
that sets the current function decision tree proxy. Because
immutable passes are destructed before the codegen phase, we
are saving the results in the two files: one before codegen
and the other after the codegen phase.

We plan to apply the proposed framework to the new
compiler phases. Also, machine learning can be used to better
make the initial decisions and the model for the good decisions
can be learned by the iterative compilation. Static
performance analyser (for example one suggested by Andrew Trick)
should be integrated / developed as the objective function that
is minimized.

This patch needs to be applied along with the corresponding patch for
clang. See below for the link.

All suggestions, comments are welcomed.

http://reviews.llvm.org/D4723






More information about the llvm-commits mailing list