[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: Compiler Optimizations
- From: Luiz Henrique de Figueiredo <lhf@...>
- Date: Fri, 31 Aug 2007 13:07:15 -0300
> That said, I could see arguments for things like folding away the code in an
> "if false" because this form might get used for turning code on and off.
> That in turn perhaps argues for syntax for declaring constants in the code
> that the compiler can then exploit as constants.
Constants are already well served by using locals, but constant folding
cannot work on constant locals. This and dead-code elimination could be
done in a smarter generator, and could be added to luac for instance, to
avoid bloating the core compiler. I think it'd be fairly easy to write an
addon module for luac that identifies constant locals and removes dead code.
Another route for dead-code elimination is to use token filters to identify
"if false then" and "if true then" and remove the dead block. (This needs
some simple block depth counting.)