🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.arch
Article #1620

Re: RISC is NOT micro-code

#1620
From: Steve Vegdahl
Date: Fri, 21 Jul 1989 16:10
32 lines
2273 bytes
In article <1989Jul19.165456.20210@utzoo.uucp>, henry@utzoo.uucp (Henry Spencer) writes:
> Things like software pipe interlocks, delayed branches, etc. can almost
> always be deferred to a cleanup pass that is very stupid and simple.  (On
> some RISC chips, this sort of thing is done in the assembler, not the
> compiler at all.)  One of the surprises that came out of RISC work is
> that moving some of these things into the software really costs very
> little.  You may occasionally miss an optimization opportunity by not
> having the earlier passes aware of the final rearrangement, but it's
> not really very frequent.

The early RISC compiler work (e.g., Gross) seems have suggested this, but
later work (e.g., Bird's thesis from U. Michigan) has shown that doing
register allocation before instruction scheduling will often cause code
quality to be much poorer.

The register allocator generally wants to do all of one computation, then
all of the next, etc. to minimize the number of concurrently live variables.
The instruction scheduler generally wants to interleave "unrelated"
compuations to minimize the effects of memory latency and such.  This issue
came up when we were considering instruction scheduling for our 88000 Scheme
compiler.  (See our paper in the ASPLOS-III proceedings).

What happens in practice when register allocation is done first, is that the
register assignments introduce a lot of artificial constraints on the
scheduler, causing it to do a much poorer job.  In other words, the
assignment of common registers to computations that could otherwise be
interleaved  makes such interleaving impossible.

		Steve Vegdahl
		Computer Research Lab
		Tektronix Labs
		Beaverton, Oregon
Technical Details
Message-ID: <4355@tekcrl.LABS.TEK.COM>
Path: arc1-ca.pugleaf.net!utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!cs.utexas.edu!uunet!zephyr.ens.tek.com!tektronix!tekcrl!tekchips!stevev
References: <753@bnr-fos.UUCP> <1989Jul17.035238.6497@utzoo.uucp> <1989Jul19.165456.20210@utzoo.uucp>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!csd4.milw.wisc.edu!cs.utexas.edu!uunet!zephyr.ens.tek.com!tektronix!tekcrl!tekchips!stevev
From: stevev@tekchips.LABS.TEK.COM (Steve Vegdahl)
Newsgroups: comp.arch
Subject: Re: RISC is NOT micro-code
Summary: instruction reordering is difficult
Message-ID: <4355@tekcrl.LABS.TEK.COM>
Date: 21 Jul 89 16:10:35 GMT
References: <753@bnr-fos.UUCP> <1989Jul17.035238.6497@utzoo.uucp> <1989Jul19.165456.20210@utzoo.uucp>
Sender: ftp@tekcrl.LABS.TEK.COM
Lines: 32