Factor has a fairly advanced optimizing compiler, but improvements can be made to it. The suggestions below are roughly in order of difficulty. This is an open-ended project, and it would be unreasonable to expect a student to complete all of them.
Implement unboxing of word-size integers
Improvements to escape analysis
Make value numbering and alias analysis global, rather than local. This will enable global float unboxing.
Modify the IR to be aware of memory instructions, to make alias analysis stronger.
Implement some simple interprocedural analysis. It might be tricky to combine this with word redefinition and keep things efficient. Right now, inlining is often used to enable optimizations between words, but this is not a good general solution as it increases code size.
Benefit to student
The student learns about compilers.
Benefit to community
Nearly all Factor programs would become faster with these compiler optimizations.
This revision created on Fri, 13 Mar 2009 18:06:38 by littledan