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.