Re: Argument passing conventions and optimization

nmm1@cus.cam.ac.uk (Nick Maclaren)
8 Nov 2003 01:33:32 -0500

          From comp.compilers

Related articles
Argument passing conventions and optimization ptumati@yahoo.com (pradeep tumati) (2003-10-27)
Re: Argument passing conventions and optimization derkgwen@HotPOP.com (Derk Gwen) (2003-10-31)
Re: Argument passing conventions and optimization fjh@cs.mu.oz.au (Fergus Henderson) (2003-10-31)
Re: Argument passing conventions and optimization marcov@stack.nl (Marco van de Voort) (2003-10-31)
Re: Argument passing conventions and optimization nmm1@cus.cam.ac.uk (2003-11-01)
Re: Argument passing conventions and optimization ptumati@yahoo.com (pradeep tumati) (2003-11-02)
Re: Argument passing conventions and optimization nmm1@cus.cam.ac.uk (2003-11-08)
Re: Argument passing conventions and optimization bobduff@shell01.TheWorld.com (Robert A Duff) (2003-11-08)
Re: Argument passing conventions and optimization robert.thorpe@antenova.com (Rob Thorpe) (2003-11-11)
Re: Argument passing conventions and optimization nmm1@cus.cam.ac.uk (2003-11-11)
| List of all articles for this month |
From: nmm1@cus.cam.ac.uk (Nick Maclaren)
Newsgroups: comp.compilers
Date: 8 Nov 2003 01:33:32 -0500
Organization: University of Cambridge, England
References: 03-10-116 03-10-153 03-11-018
Keywords: code
Posted-Date: 08 Nov 2003 01:33:32 EST



pradeep tumati <ptumati@yahoo.com> wrote:
>> I think you need to look for non-C compilers for this? If a compiler
>> encounters a C function, it can't be sure it is not exported via a
>> header somewhere, and those headers expect standard C calling
>> conventions.
>
>Most C compiler try following the standard ABI specifications of the
>target processor. Now, if a compiler optimizes the function call
>conventions, its not going to be sure if the callee is a library
>function. So, its better to follow the starndard conventions.


That applies to Unix and derived systems (including Microsoft ones),
where C is the definition language for the system call API. On a
system where it is not, such as IBM MVS, the converse applies. The C
calling conventions on that are legion, weird and VERY much unlike the
standard calling sequence in almost all cases!


>Does this case even apply to parameter passing in the case of static
>functions (in C)? Logically, we can perform optimization, but I am not
>sure what kind of side effects this causes... The same can be the case
>with functions calling other functions within the same C++ Namespace.


What's a static function in this context?


>There could be a scenario where this kind of optimization can be
>entrusted to the linker, but I guess its going to be a costly
>stuff. Any thoughts...?


It is. It is done. Many HPC vendors have such an option.


Regards,
Nick Maclaren.


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.