Related articles |
---|
[10 earlier articles] |
Re: Compiling to C (where C is used as misspelled assembly) monnier+/news/comp/compilers@tequila.cs.yale.edu (Stefan Monnier) (1997-05-17) |
Re: Compiling to C (where C is used as misspelled assembly) cdg@nullstone.com (Christopher Glaeser) (1997-05-17) |
Re: Compiling to C (where C is used as misspelled assembly) conway@mundook.cs.mu.OZ.AU (1997-05-22) |
Re: Compiling to C (where C is used as misspelled assembly) conway@mundook.cs.mu.OZ.AU (1997-05-22) |
Re: Compiling to C (where C is used as misspelled assembly) Dave@occl-cam.demon.co.uk (Dave Lloyd) (1997-05-22) |
Re: Compiling to C (where C is used as misspelled assembly) partain@dcs.gla.ac.uk (Will Partain) (1997-05-22) |
Re: Compiling to C (where C is used as misspelled assembly) fjh@mundook.cs.mu.OZ.AU (1997-05-25) |
Re: Compiling to C (where C is used as misspelled assembly) fjh@mundook.cs.mu.OZ.AU (1997-05-25) |
From: | fjh@mundook.cs.mu.OZ.AU (Fergus Henderson) |
Newsgroups: | comp.lang.scheme,comp.compilers |
Date: | 25 May 1997 12:59:49 -0400 |
Organization: | Comp Sci, University of Melbourne |
References: | 97-05-183 97-05-197 97-05-249 |
Keywords: | C, assembler |
conway@mundook.cs.mu.OZ.AU (Thomas Charles CONWAY) writes:
>he [Fergus] wrote an equivalent piece
>of C code (all in one module) which passed and returned structures,
>just as the Mercury code did. He tried several C compilers - even
>with `const' in all the right places (etc), the compiler didn't do any
>inlining, and created the intermediate structures even though it
>should have been painfully obvious to do so.
Minor correction: the C compilers did do the inlining.
The problem was that they only optimized away the "call" and "return"
instructions. They didn't optimize away the parameter passing/returning.
They generated code that spent a lot of time unnecessarily
storing data on the stack, copying data from one location on the stack
to another, and then loading it from the stack into registers again.
--
Fergus Henderson <fjh@cs.mu.oz.au>
WWW: <http://www.cs.mu.oz.au/~fjh>
PGP: finger fjh@128.250.37.3
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.