[PRL] Compiler optimizations via fold/build

Kenichi Asai asai at ccs.neu.edu
Wed Mar 31 10:05:08 EST 2004


Hi there,

After the last pl-seminar, I implemented (in OCaml) several compiler
optimizations using fold/build for a pure subset of Scheme (with
letrec).  I implemented:

(1) K-normal form transformation
(2) alpha-transformation
(3) copy propagation (beta-transformation)
(4) eta-transformation (let x=M in x -> M)
(5) useless variable elimination
(6) constant propagation
(7) common subexpression elimination
(8) let-assoc transformation
    (let x=let y=M in N in L -> let y=M in let x=N in L)
(9) inlining
(10) closure conversion (lambda-lifting)

I think they cover pretty much of the optimizations.  Now, I
appriciate your inputs on:

- the optimizations that I should further try to implement
- example Scheme programs to see if the optimizer actually does the
work (i.e., "Can you optimize this program into this?")

If it's appropriate, I can present in a seminar what I did so far.

-- 
Kenichi Asai



More information about the PRL mailing list