[Ecls-list] function_dispatch

Matthew Mondor mm_lists at pulsar-zone.net
Sun Jan 24 10:07:05 UTC 2010


Since there were recent threads on optimizations, I thought I'd share
this I noticed lately:

CVS ECL (v10+) seems to indirect many function calls to another
function, function_dispatch(), which doesn't seem to be the case in v9;
I've not benchmarked the difference yet but noticed that the
-march=i686 -O2 assembly result also were larger:

Although larger size may or may not always be slower, a function I
compared, port_wait(), for instance yields 132 asm lines on 9.8.3 yet
193 asm lines on 10.1.1.

There may of course be valid reasons for this, however;  I read the
source of function_dispatch() for now and a reason for it might be to
make the code safer (it checks if the function is defined to then
dispatch via a switch-case to a type-specific internal function, for
instance).

Thanks,
-- 
Matt




More information about the ecl-devel mailing list