Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!lll-crg!nike!oliveb!glacier!mips!mash From: mash@mips.UUCP (John Mashey) Newsgroups: net.arch Subject: Re: Where are delayed branches handled? Message-ID: <635@mips.UUCP> Date: Wed, 20-Aug-86 01:47:56 EDT Article-I.D.: mips.635 Posted: Wed Aug 20 01:47:56 1986 Date-Received: Wed, 20-Aug-86 23:26:08 EDT References: <299@vaxb.calgary.UUCP> <612@mips.UUCP> <688@polaris.UUCP> Reply-To: mash@mips.UUCP (John Mashey) Organization: MIPS Computer Systems, Sunnyvale, CA Lines: 31 In article <688@polaris.UUCP> josh@polaris.UUCP (Josh Knight) writes: ... >>>On RISC machines with delayed branches, who does the instruction >>>rearrangement that tries to put useful instructions after the branch? ... >> >>1) Ours is in the assembler, and I think most others are, also. I haven't >>seen one that was in the compiler; maybe others have and would say so. > >I don't believe the PL.8 compiler for the 801 (or for the ROMP) generates >assembly language. I.e. any code movement to take advantage of delayed >branches is done by the compiler. Thanx for the note. I reread the HP Spectrum papers and they seem to be in the compiler also, although, as far as I could tell, fairly late, i.e., peephole time. Ours passes binary between compiler and assembler, i.e., the "assembler" is really an ascii-binary conversion in front of the the common assembler. Maybe the real issues are: a) When you write handcoded assembler, do you get the optimizations or not? b) Is the pipeline scheduling early in the compilation, or late? (Regardless of the implementation, most cases seem to be late, i.e., peephole time, whether inside the compielr or the assembler. Of course, careful code generation helps the pipeline scheduler by careful choices of registers and other things.) Now, does anyone have some instances where pipeline scheduling is done by, for example, the global optimization phase? -- -john mashey DISCLAIMER: UUCP: {decvax,ucbvax,ihnp4}!decwrl!mips!mash, DDD: 408-720-1700, x253 USPS: MIPS Computer Systems, 930 E. Arques, Sunnyvale, CA 94086