Path: utzoo!attcan!uunet!mcvax!ukc!dcl-cs!nott-cs!anw From: anw@nott-cs.UUCP Newsgroups: comp.lang.c Subject: Re: "Honour Parens" Rule Message-ID: <569@tuck.nott-cs.UUCP> Date: 29 Jun 88 14:49:56 GMT References: <2742@utastro.UUCP> <20008@beta.UUCP> <10655@agate.BERKELEY.EDU> <8130@brl-smoke.ARPA> <6958@ki4pv.uucp> <796@garth.UUCP> Reply-To: anw@maths.nott.ac.uk (Dr A. N. Walker) Organization: Department of Mathematics, The University, NOTTINGHAM, NG7 2RD, UK. Lines: 28 In article <796@garth.UUCP> smryan@garth.UUCP (Steven Ryan) writes: >> [ stuff about re-arranging expressions ] > This issue is messier than it appears on the surface. [ more ideas etc ] It's even messier than this, and getting messier as time goes on. Over in "comp.arch", they're talking about optimising assemblers. We now have *at least* four places where expressions may be optimised -- in the compiler, in the intermediate code (in systems such as the Amsterdam Compiler Kit), in intelligent linkers, and in the assembler (presumably before *and/or* after linking, depending on how compiled modules are stored). I suppose that even optimising loaders are not a totally stupid idea [I don't mean intelligent pre-paging, more a loader that says, "Hey, the cache has just been expanded, so that load should be moved to *here*, and yesterday's benchmark shows that the FP multiply is faster than we thought, so *that* NOP can be deleted", etc.]. *Each* of these stages (some of which "cc" *ought* not to know anything about in most Unix-like systems) *may* now need special directives to say "Don't mess with this, or it may overflow/alias/volatilate [:-)] in ways you can't be expected to understand". This is not easy when the compiler may (well) have no idea what the target system is. Bring back the good old days, when C was defined by what happened using DMR's compiler on DMR's computer! :-) -- Andy Walker, Maths Dept., Nott'm Univ., UK anw@maths.nott.ac.uk