Article View: comp.arch
Article #1634Re: RISC is NOT micro-code
From: Eugene Brooks
Date: Sat, 22 Jul 1989 18:57
Date: Sat, 22 Jul 1989 18:57
25 lines
2238 bytes
2238 bytes
In article <4355@tekcrl.LABS.TEK.COM> stevev@tekchips.LABS.TEK.COM (Steve Vegdahl) writes: >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. We dealt with this problem in the Cerberus multiprocessor simulator by simply having the register allocator get registers from the scratch pile in a round-robin manner, instead of starting upwards from R0 in the search for a free one each time. This minimized the number of "false dependencies" and allowed a postprocessing scheduler to work quite well. In the limit of large register counts it of course is perfect (256 registers is effectively an infinite number, but in practice is worked quite well at 16 or 32 registers. If one is constrained to do the scheduling in a machine dependent postprocessor with the register allocation done in a PCC or GCC like portable compiler this technique is quite useful and produces well scheduled code. brooks@maddog.llnl.gov, brooks@maddog.uucp
Technical Details
Message-ID:
<28917@lll-winken.LLNL.GOV>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!ames!amdahl!pyramid!lll-winken!vette!brooksReferences:
<753@bnr-fos.UUCP> <1989Jul17.035238.6497@utzoo.uucp> <1989Jul19.165456.20210@utzoo.uucp> <4355@tekcrl.LABS.TEK.COM>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!ames!amdahl!pyramid!lll-winken!vette!brooks From: brooks@vette.llnl.gov (Eugene Brooks) Newsgroups: comp.arch Subject: Re: RISC is NOT micro-code Message-ID: <28917@lll-winken.LLNL.GOV> Date: 22 Jul 89 18:57:40 GMT References: <753@bnr-fos.UUCP> <1989Jul17.035238.6497@utzoo.uucp> <1989Jul19.165456.20210@utzoo.uucp> <4355@tekcrl.LABS.TEK.COM> Sender: usenet@lll-winken.LLNL.GOV Reply-To: brooks@maddog.llnl.gov (Eugene Brooks) Organization: Lawrence Livermore National Laboratory Lines: 25