On 09/28/2010 07:33 PM, bearophile wrote:
Through Reddit I have found a small article about reverse engineering the
switch statement:
http://www.codeproject.com/KB/cpp/switch.aspx
I have compiled a test program with GCC and then with DMD with minimal changes,
this is the D program and the asm from the two compilers:
... listing ...
gcc and llvm-gcc use a binary search, dmd a linear one.
I have done a similar interesting test (similar to switch5.cpp of the article
author) where a good implementation of the switch is a small table for part of
the cases and a binary tree for the other cases.
Bye,
bearophile
Interesting. Do you have any performance comparisons? The input is
fairly small, I'm not sure a binary search will help a lot.