[net.lang.c] Taking the address of a register

guido@mcvax.uucp (Guido van Rossum) (07/11/86)

In article <2036@brl-smoke.ARPA> rbj@icst-cmr.ARPA writes:
~> Suggestion to make the compiler introduce a temporary when the
~> address of a register variable is passed as argument to a function.

Rather than cluttering the compiler with more crap than this, write an
optimizing compiler that doesn't need register declarations but can find
out for itself what variables are best put in registers.

If you want to make the language's level higher by doing something to
register variables, remove them from the language instead of giving them
'pseudo-auto' status.

Or did I mis some implicit `:-)' in your article?

	Guido van Rossum, CWI, Amsterdam <guido@mcvax.uucp>

aglew@ccvaxa.UUCP (07/13/86)

>In article <2036@brl-smoke.ARPA> rbj@icst-cmr.ARPA writes:
>~> Suggestion to make the compiler introduce a temporary when the
>~> address of a register variable is passed as argument to a function.
>
>Rather than cluttering the compiler with more crap than this, write an
>optimizing compiler that doesn't need register declarations but can find
>out for itself what variables are best put in registers.
>
>If you want to make the language's level higher by doing something to
>register variables, remove them from the language instead of giving them
>'pseudo-auto' status.
>
>	Guido van Rossum, CWI, Amsterdam <guido@mcvax.uucp>

The "~>" summary quote is a good idea, but it has been pointed out that it
messes up Hazeltine terminals that use tilde as an escape. How about "... >"

Talking about crap - I'm all for good optimizing compilers that can put
variables in registers - but I still want to be able to have explicit control
when the global optimizer isn't smart enough (frequently).

Making a language's level higher does not mean removing low level constructs
like register variables, it means making them unnecessary. Your optimizing
compiler should be able to optimize in the presence of human added
constraints.

Andy "Krazy" Glew. Gould CSD-Urbana.    USEnet:  ihnp4!uiucdcs!ccvaxa!aglew
1101 E. University, Urbana, IL 61801    ARPAnet: aglew@gswd-vms

rbj%icst-cmr@smoke.UUCP (07/15/86)

	In article <2036@brl-smoke.ARPA> rbj@icst-cmr.ARPA writes:
	~> Suggestion to make the compiler introduce a temporary when the
	~> address of a register variable is passed as argument to a function.
	
	Rather than cluttering the compiler with more crap than this, write an
	optimizing compiler that doesn't need register declarations but can find
	out for itself what variables are best put in registers.
	
	If you want to make the language's level higher by doing something to
	register variables, remove them from the language instead of giving them
	'pseudo-auto' status.
	
	Or did I mis some implicit `:-)' in your article?
	
		Guido van Rossum, CWI, Amsterdam <guido@mcvax.uucp>

UNCLE! As for those Hazletine terminals, hook them all up to machines
where sizeof(int) != sizeof(any *0)!!!

	(Root Boy) Jim Cottrell		<rbj@icst-cmr.arpa>
	Can you MAIL a BEAN CAKE?