Closed GoogleCodeExporter closed 9 years ago
Apparat will not perform copy propagation when using TDSI. The local variables
have to be created because the following is valid code:
function add(x: int): void {
x += 1;
return x;
}
var y: int = 0;
add(y)
trace(y)
If no extra variables would be created, the code would trace "1" but should
trace "0". Therefore variables are created and an additional optimization phase
would be required to get rid of them. That could and is already implemented in
the TAAS code as a phase, but since there is no complete ABC frontend or ABC
backend (and I am no longer interested in writing it) your best chance will be
to use MacroExpansion instead since no additional variables are created.
Original comment by joaebert
on 26 Mar 2012 at 1:42
Issue 62 has been merged into this issue.
Original comment by joaebert
on 27 Mar 2012 at 6:21
Thanks.
I originally use Inlined because the documentation led me to believe that I
absolutely may not use return values with macros.
I thought I would try anyway and was surprised to see that it works just fine
and does exactly what I want.
Original comment by thecma...@gmail.com
on 27 Mar 2012 at 8:04
Original issue reported on code.google.com by
thecma...@gmail.com
on 26 Mar 2012 at 1:31Attachments: