Path: utzoo!utgpu!water!watmath!clyde!rutgers!sri-spam!ames!hc!beta!unm-la!unmvax!nmtsun!hydrovax
From: hydrovax@nmtsun.nmt.edu (M. Warner Losh)
Newsgroups: comp.lang.c
Subject: Re: unofficial X3J11 meeting notes
Summary: Optimizing comment (unofficial)
Keywords: ANSI C standard
Message-ID: <1168@nmtsun.nmt.edu>
Date: 14 Dec 87 19:35:22 GMT
References: <6829@brl-smoke.ARPA> <9753@mimsy.UUCP>
Organization: NMT Hydrology program
Lines: 28

In article <9753@mimsy.UUCP>, chris@mimsy.UUCP (Chris Torek) writes:
+ In article <6829@brl-smoke.ARPA> gwyn@brl-smoke.ARPA (Doug Gwyn ) writes:
+ >A new keyword, "noalias", was added; it's a type-qualifier like const
+ >and volatile.  Its only function is to permit tighter optimization....
+ 
+ Aside from the obvious---that noalias can be applied to globals and
+ aggregates, and that some dumb compilers still use the word `register'
+ to decide what to put into registers---what is the difference between
+ this and `register'?  That is, why not simply allow register to be
+ applied to globals and aggregates?

The new keyword noalias does more than the register vaiable.  It will
allow the compiler to do better global optimizations.  Having just
completed a compiler class here at NMTech, I can say that this is not
an easy matter when aliasing (or refering to an object by several,
nonobvious, handles) is included.  When you have aliasing, most compilers
simply throw up their hands and do a worst case code generation.  The 
problem of aliasing, I believe (it has been a while since that lecture)
is NP-complete (or maybe NP-HARD).

...!lanl!unm-la!unmvax!nmtsun!warner%hydrovax	(Warner Losh)

-- 
bitnet:	lush@nmt.csnet			M. Warner Losh
csnet:	warner%hydrovax@nmtsun
uucp:	...{cmcl2, ihnp4}!lanl!unmvax!nmtsun!warner%hydrovax
	...{cmcl2, ihnp4}!lanl!unmvax!nmtsun!hydrovax
Warning:  Hydrovax is both a machine, and an account, so be careful.