[Vm-dev] RoarVM: The Manycore SqueakVM
John M McIntosh
johnmci at smalltalkconsulting.com
Sat Nov 6 21:00:32 UTC 2010
The other cheerful thing the switch statement does is put a range check in.
This would cause a range check to be done for each bytecode looked up unless you did the gnuify.
15 years back we actually altered the 68K binary to no-op out the range check which improved performance a
measurable amount on.
On 2010-11-06, at 1:42 PM, Levente Uzonyi wrote:
> On Sat, 6 Nov 2010, Igor Stasenko wrote:
>> I suppose its related to fact, that with small number of cases (like up to 16)
>> its not worth using indirect jump, because with branch prediction you
>> can achieve same or even better performance.
>> That's why i think, modern compilers do not using jump tables.
>> Having more than 16 number of cases, is an edge case. Not saying about 256.
> I expect a compiler to generate the fastest possible code, if I ask for that. I think we agree, that gcc doesn't do this.
>> Btw, I was also thinking that compilers generating jump tables for
>> case statements.
John M. McIntosh <johnmci at smalltalkconsulting.com> Twitter: squeaker68882
Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 3829 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20101106/0ca50bc9/smime-0001.bin
More information about the Vm-dev