Newbie question on front-end and code compaction

Hi!

I’m still a newbie to LLVM, so I’m looking for guidance that will tell me the right docs to read.

I’m interested in working on 2 different things. I’m interested on adding a new front end for a functional language such as Lisp. I’m also interested in helping out with compaction(making code with a small footprint). What are the right docs for me to start reading and reviewing?

tia,
Bernardo

I'd start with the kaleidoscope tutorials, they taught me a lot about llvm:

http://llvm.org/docs/tutorial/

People pointed out recently on the list that -Os doesn't work so well. See the email from regehr@cs.utah.edu on Aug 20 on llvmdev. You should be able to work with him to get testcases, from there you just grind through them and find why they are bigger and reduce them. Failing that, just compile up any software and compare. Should be lots of low hanging fruit.

Thread starts here:
http://lists.cs.uiuc.edu/pipermail/llvmdev/2008-August/016600.html
The last message points out inlining and unrolling heuristics as low-hanging fruit, and I agree.
But there is a lot more beyond that, particular instruction selection on x86.