Article View: comp.arch
Article #1620Re: RISC is NOT micro-code
From: Steve Vegdahl
Date: Fri, 21 Jul 1989 16:10
Date: Fri, 21 Jul 1989 16:10
32 lines
2273 bytes
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!stevevReferences:
<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