Subject: Re: indirect calls [Re: issues with com and non-PCI platforms....
To: None <pavel.cahyna@st.mff.cuni.cz, tech-kern@netbsd.org>
From: Garrett D'Amore <garrett_damore@tadpole.com>
List: tech-kern
Date: 03/14/2006 12:57:01
Pavel Cahyna wrote:
> On Wed, Mar 08, 2006 at 04:30:35PM -0800, Matt Thomas wrote:
>   
>> On Mar 8, 2006, at 3:59 PM, Garrett D'Amore wrote:
>>     
>>> How does an indirect function call compare against say the cost of
>>> another array index lookup and an extra shift/mask operation>
>>>       
>> for vax, about an order of magnitude.
>>     
>
> What can be so slow? An indirect function call, or function calls in
> general? And which architectures especially suffer from expensive indirect
> function calls?
>   

My understanding, from what others have said, is that the problem is
that function calls *in general* are expensive on a VAX.

It is mind boggling to me, that we have to design our software to
eliminate  function calls where-ever possible, in order to get good
performance.

This violates one of the main principles of modular design (use small
functions, which are readily understood and reusable), but apparently
we're still stuck trying to keep this ancient stuff running at top
performance.

Anyway, I've punted entirely on the issue.  I'll settle for either ugly
non-portable software workarounds, or cut-n-paste-n-modify approaches
because apparently that is far less contentious.

If someone else wants to carry the torch for good modular design, then
they can speak up and take the flames.  I don't have the time or energy
to put up with the complaints right now.

-- 
Garrett D'Amore, Principal Software Engineer
Tadpole Computer / Computing Technologies Division,
General Dynamics C4 Systems
http://www.tadpolecomputer.com/
Phone: 951 325-2134  Fax: 951 325-2191