Compiler: implement loop rolling
Created by: vaussard
Commit 11b7be49 introduces an intermediate vectorial syntax tree. A tree operating on a vector of N-element will expand to N-trees operating on single elements. In addition of being CPU intensive, it also takes a lot of program memory.
Issue #109 proposes to optimize vectorial operations (can be seen as -O3). A complimentary feature, let's call it -Os, is to roll loops when operating on long vectors. Instead of expanding to N-trees, we can expand to a ForNode with a modified inner tree. One of the important modification is to allocate memory for ImmediateVectorNode. We will have to access static vectors directly from memory, as the compiler won't be able to generate the corresponding bytecode in advance.