Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watmath!clyde!rutgers!ucla-cs!ames!amdcad!amd!intelca!mipos3!omepd!mcg From: mcg@omepd.UUCP Newsgroups: comp.lang.c Subject: Re: Porting PCC Message-ID: <801@omepd> Date: Wed, 17-Jun-87 00:18:48 EDT Article-I.D.: omepd.801 Posted: Wed Jun 17 00:18:48 1987 Date-Received: Fri, 19-Jun-87 01:13:05 EDT References: <2082@dg_rtp.UUCP> <5975@brl-smoke.ARPA> <6604@ism780c.UUCP> <21214@sun.uucp> Reply-To: mcg@omepd.UUCP (Steven McGeady) Organization: Intel Corp., Hillsboro Lines: 24 Summary: QCC ~= RCC QCC and RCC are almost the same thing. They differ in the exact algorithm used for instruction selection. RCC does a complex (and time-expensive) cost comparison among certain alternatives. QCC operates on an ordered list of alternatives, and simply picks the first one that applies. The only files that would differ between the two versions are scommon/cost.c and scommon/match.c. The belief is that this generates the best code most of the time, and is substantially faster in compiler speed. QCC is the 'Quick RCC'. I believe that the version on 3B's is actually QCC - RCC is a research tool. V.3 also includes an optimizer which, while not any better than c2, appears to be easier to retarget ('port' is really the wrong word for re-doing compiler backends). What V.3 *still* does not have, and would do the reputation of PCC-based compilers a world of good, is a (mostly) machine-independent intermediate code optimizer (between the first and second passes) doing things like strength reduction, dead variable elimination, etc. This would destroy the one-pass ("filter") aspect of PCC, but would generate substantially better code. S. McGeady