AS3 Bitwise gems - fast integer math
lab.polygonal.de
AS3 Bitwise gems - fast integer math
1–5 of 5 posts
Re: AS3 Bitwise gems - fast integer math
#2http://www.mozilla.org/projects/tamarin/
Flash opcodes into Nanojit IR:
http://hg.mozilla.org/tamarin-central/raw-file/4eb9f961a087/...
Nanojit IR to native x86 translation tables?
http://hg.mozilla.org/tamarin-central/raw-file/4eb9f961a087/...
Re: AS3 Bitwise gems - fast integer math
#3Interested parties can also look at how the Tamarin VM implements those bitwise opcodes natively. http://www.mozilla.org/projects/tamarin/ Flash opcodes into Nanojit IR: http://hg.mozilla.org/tamarin-central/raw-file/4eb9f961a087/... Nanojit IR to native x86 translation tables? http://hg.mozilla.org/tamarin-central/raw-file/4eb9f961a087/...
Re: AS3 Bitwise gems - fast integer math
#4 a / 64
to a >> 6
? I could understand it in a dynamically typed language, where a, and therefore the result, could be non-integer, but ActionScript seems to have static type declarations for variables.Re: AS3 Bitwise gems - fast integer math
#5I don't do flash, but I was under the impression that there's some kind of compilation going on and ActionScript isn't just interpreted. How on earth does a modern compiler not optimise a / 64 to a >> 6 ? I could understand it in a dynamically typed language, where a, and therefore the result, could be non-integer, but ActionScript seems to have static type declarations for variables.
int a;
int b = 64;
a / b
requires dataflow analysis so you can do constant propagation, copy propagation, and dead code elimination. This is more work to get right, but that's not a very good excuse for not at least doing the peephole optimization.