Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!linus!decvax!microsoft!uw-beaver!tektronix!ogcvax!omsvax!hplabs!sri-unix!JTW@mit-xx From: JTW%mit-xx@sri-unix.UUCP Newsgroups: net.unix-wizards Subject: Re: From VMS to UNIX Message-ID: <12645@sri-arpa.UUCP> Date: Thu, 20-Oct-83 01:07:00 EDT Article-I.D.: sri-arpa.12645 Posted: Thu Oct 20 01:07:00 1983 Date-Received: Sat, 22-Oct-83 03:04:44 EDT Lines: 31 From: John T. Wroclawski Now wait a cotton picken minute. How can you say that BLISS produces better code than C. That is an entierely implementation dependant thing contingient on what machine you are running on, which version of the compiler you are using and what level of optimization you are asking it to do. -Ron Fundamental characteristics of the language have an effect, too. The presence of unrestricted GOTO's in C makes it *much* harder to implement a really good (read "globally optimizing") C compiler than an equivalent BLISS compiler. That's one of the main reasons BLISS left them out. The only widely available C I've seen in this category is the DEC VMS compiler. Through global optimization and clever use of the VAX's more complex addressing modes it generates code with far fewer instructions than, say, the 4.1BSD version of PCC. It is not, however, as good as BLISS. The original BLISS-11 generates positvely amazing code. It is interesting to note that this is not necessarily relevant. I have seen at least one case where the VMS compiler generated a code sequence almost 70% shorter (instruction count) than the 4.1 compiler for a critical C function, but the code didn't run any faster due to the VAX's slowness with it's more complicated instruction forms. More global optimizations would, of course, likely have a more noticable effect. -------