Refactor the source tree
Add basic optimization (collapse <, >, +, -)
Add loop unrolling support