[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