Why does peephole not handle JUMP before barrier?

Alan Lehotsky apl@alum.mit.edu
Wed Sep 12 09:30:00 GMT 2001


genpeep.c produces a peephole() function that explicitly excludes performing peepholes on
anything that's immediately followed by a barrier instruction.

I've got a machine that has branch delay slots.  If the instruction following a branch is another branch,
then the second branch is suppressed.  So, if I have something like

		jeq	$10
		  nop
		jmp	$12
		  ....

that can be replaced by

	jeq $10
	jmp $12
	...

avoiding the nop.

But, if I've got

		jmp	$10
		  nop
		jmp $12
		  nop

the peephole() NEVER looks at the jmp $10, as it's actually got a barrier after it.


-- 
------------------------------------------------------------------------

		    Quality Software Management
		http://home.earthlink.net/~qsmgmt
			apl@alum.mit.edu
			(978)287-0435 Voice
			(978)808-6836 Cell
			(978)287-0436 Fax

	Software Process Improvement and Management Consulting
	     Language Design and Compiler Implementation



More information about the Gcc mailing list