PATCH for branch-shortening on MIPS

mark@codesourcery.com mark@codesourcery.com
Thu May 27 11:47:00 GMT 1999


Here's a patch to implement branch-shortening for the MIPS.  (Well, to
allow the branch-shortening code to work with the MIPS.)

Thanks to Jeff and Jim for explaining how some of this stuff worked
before I dove in.

Most of this patch consists of changing the MIPS machine-description
to use bytes for instruction lengths, not instruction counts.  The
guts of the changes are in mips_output_conditional_branch in mips.c.

I've tested this patch extensively on mips-sgi-irix6.5:

  o I verified it fixes my test-case.

  o I verified that it bootstraps, and passes make check-gcc, 
    and make check-g++, without ever once generating a long branch.
    (Good thing, since we used to be able to do all this without
    being able to generate long branches.)
  
  o I verified that I can bootstrap the compiler, and get identical
    test results, with the long branches *everywhere*.  In other
    words, treating all branches as if they were long branches.  That
    convinces me that the long-branching code is OK.

May I check this in?

--
Mark Mitchell                   mark@codesourcery.com
CodeSourcery, LLC               http://www.codesourcery.com

Wed May 26 23:55:31 1999  Mark Mitchell  <mark@codesourcery.com>

	* mips.h (mips_output_conditional_branch): New function.
	(mips_adjust_insn_length): Likewise.
	(ASSEMBLER_SCRATCH_REGNUM): New macro.
	(ADJUST_INSN_LENGTH): Likewise.
	* mips.c (print_operand): Add `F' and `W' for floating-point
	comparison opcodes.
	(machine_dependent_reorg): Adjust MIPS16 code; instruction-lengths
	are now in bytes.
	(mips_adjust_insn_length): New function.
	(mips_output_conditional_branch): New function.
	* mips.md (length): Adjust attribute definition to handle
	conditional branches.  	Change lengths to bytes, rather than
	instructions throughout.  Remove length attribute from
	instructions whose length is four bytes, and rely on the default
	instead.
	(dslot): Fix typo in comment.
	Reword conditional branch patterns to use
	mips_output_conditional_branch.
	
begin 640 mips-diffs.gz
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
*_P&LE,8&1.@"````
`
end


More information about the Gcc-patches mailing list