[LLVMdev] LLVM projects: Change framework
Vikram S. Adve
vadve at uiuc.edu
Wed Apr 25 07:29:27 PDT 2007
What exactly can you describe in this change language? There is a
lot of research happening now on techniques to identify the best
sequence of optimizations for a particular program, or just the best
output form for the program. There are no really good
infrastructures for this kind of work, but we have been interested in
making LLVM useful for such work. (LLVM has been used by Keith
Cooper's group at Rice for this purpose because it allows very easy
pipelining of passes.)
I'm wondering if the change language can be used to describe a
sequence of transformations more abstractly to make this kind of
research easier and more systematic?
On Apr 25, 2007, at 2:01 AM, Jakob Praher wrote:
> hi all,
> I have used LLVM extensively over the last 2 years.
> I have realized a so called change framework that based on the LLVM
> Basically it is a framework that augments the JIT to understand
> "changes", such that a mutator process can formulate changes in a
> language (inspired by DTrace's D), which is too compiled to LLVM and
> sent to the application process.
> The application process than transforms the IR and marks the functions
> as beeing dirty. After a detection period, the changes are detected
> the functions in question get recompiled and relinked, such that the
> change is now applied within the application.
> Every change can be undone. This is done by keeping an undo record of
> changes (allthough other approaches would seem fit also).
> The thesis can be found on http://www.prahersoft.com/~jp/da.pdf.
> Part of the thesis is an extensive documentation of the LLVM framework
> from a 10000 feet view. This might be interesting to new-comers.
> The reason why I did not post information on this list, is that the my
> university rules did not allow me to.
> I would be interested in hearing from you about it.
> -- Jakob
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
More information about the llvm-dev