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) |
From: | nmm1@cus.cam.ac.uk (Nick Maclaren) |
Newsgroups: | comp.compilers |
Date: | 1 Nov 2003 12:05:17 -0500 |
Organization: | University of Cambridge, England |
References: | 03-10-116 03-10-147 |
Keywords: | code, optimize |
Posted-Date: | 01 Nov 2003 12:05:17 EST |
Fergus Henderson <fjh@cs.mu.oz.au> wrote:
>Our moderator replied:
>
>>[Other than inlining, I don't recall ever seeing an optimization that
>>affected the calling sequence.
>
>There are others, e.g. tail call and sibling call optimization.
>However, although they affect the calling sequence, they do not affect
>the argument passing mechanism.
There are a fair number that do. In addition to that, there are at
least the following classes (each with many variations):
Ones where arguments were passed in registers for a very fast,
simple calling sequence. This is very common in calls to standard
libraries, and it is sometimes possible to compile code in that mode.
Ones where secondary stack or global data pointers were not passed
(e.g. in languages with nested block scoping), because the compiler
could tell that the feature would not be used.
Ones where tracebacks and/or signal handling were not supported,
because certain critical global registers were passed in non-standard
states. Thank heavens, that lunacy is rare.
In the second two cases, the interaction with actual argument passing
was sometimes because the pirated global registers were used for
extra register arguments. The cases (and the one Fergus mentioned)
overlap, of course.
Regards,
Nick Maclaren.
Return to the
comp.compilers page.
Search the
comp.compilers archives again.