Open ErikCorryGoogle opened 6 years ago
From Martin Kustermann: LoadIndexedInstr could return a kUnboxedInt64 on 64 bit platforms.
In Dartino the front-end desugared optional arguments and variable length argument lists into multiple copies of methods. A similar desugaring could duplicate methods that take ints and doubles into a copy where ints and doubles are passed unboxed on the stack, and a more conservative copy that expects tagged ints.
Currently we manually mark some Smi operations as truncating when we know they don't overflow. With smaller Smis, we have to additionally sign-extend. So instead of marking these instructions as truncating we should give them a range so the range analysis will conclude it they cannot overflow.
Smaller Smis can slow down some integer operations, but with tighter types for ints in Dart2, there should be some opportunities to speed up integer operations in the VM and produce tighter code. This bug collects ideas for doing this.