|Optimizing in assembly language email@example.com (Randall Hyde) (2001-03-01)|
|Re: Optimizing in assembly language firstname.lastname@example.org (Shankar Unni) (2001-03-04)|
|Re: Optimizing in assembly language email@example.com (Shankar Unni) (2001-03-26)|
|C as assembly language firstname.lastname@example.org (Joachim Durchholz) (2001-04-04)|
|Re: C as assembly language email@example.com (2001-04-10)|
|Re: C as assembly language firstname.lastname@example.org (2001-04-10)|
|Re: C as assembly language email@example.com (Morrisett) (2001-04-10)|
|Re: C as assembly language firstname.lastname@example.org (jacob navia) (2001-04-10)|
|Re: C as assembly language email@example.com (felix) (2001-04-10)|
|Re: C as assembly language firstname.lastname@example.org.OZ.AU (2001-04-10)|
|Re: C as assembly language email@example.com.OZ.AU (2001-04-12)|
|Re: C as assembly language firstname.lastname@example.org (2001-04-12)|
|[11 later articles]|
|From:||email@example.com (Andreas Krall)|
|Date:||10 Apr 2001 01:20:34 -0400|
|Organization:||Vienna University of Technology, Austria|
|References:||01-03-006 01-03-046 01-03-130 01-04-027|
|Posted-Date:||10 Apr 2001 01:20:34 EDT|
"Joachim Durchholz" <firstname.lastname@example.org> writes:
> Hmm... there are a few additional cases where C is simply inappropriate:
> Oh, and slightly off-topic, there are a few other things that annoy
> those who want to use C as a backend for their compiler:
> 3) It has no support for tail call recursion.
> 4) It has no support for automatic garbage collection.
> (The following are from http://www.cminusminus.org/faq.html:)
> 5) It cannot return multiple values in registers
> 6) It cannot bind global variables to registers
Here you mix up the language definition of C with current
implementions of C compilers. Some C compilers do not implement the
above mentioned features, but many implement proper tail call
recursion, structs and unions returns in registers and interprocedural
register allocation. One of my students has implemented proper tail
recursion for GCC for the x86 and the Alpha backend. His master thesis
and the code will be available very soon from our web server.
ad 4) There is always the Boehm/Weiser GC
Just read the calling conventions for differnt compilers, e.g.: SGI
A struct with only one or two floating point fields is returned in $f0
(and $f2 if needed).
Any other struct or union results of at most 128 bits are returned in $2
and $3 (remainder if necessary).
email@example.com Andreas Krall
http://www.complang.tuwien.ac.at/andi/ Inst. f. Computersprachen, TU Wien
tel: (+431) 58801/18511 Argentinierstr. 8/4/1851
fax: (+431) 58801/18598 A-1040 Wien AUSTRIA EUROPE
Return to the
Search the comp.compilers archives again.