[PATCH, MIPS] 74k madd scheduler tweaks

Maxim Kuvyrkov maxim@codesourcery.com
Tue Aug 14 00:06:00 GMT 2012


On 9/08/2012, at 7:10 AM, Richard Sandiford wrote:

> Hmm, yeah, it does look like they should be using mips_linked_madd_p
> instead, except that mips_linked_madd_p isn't yet wired up to handle
> DSP macs.  Rather than pattern-match them all, the easiest thing would
> probably be to define a new attribute along the lines of:
> 
> (define_attr "accum_in" "none,0,1,2,3,4,5" (const_string "none"))
> 
> and use it for the existing imadds too.  E.g.:
> 
> (define_insn "*mul_acc_si"
>  [(set (match_operand:SI 0 "register_operand" "=l*?*?,d?")
> 	(plus:SI (mult:SI (match_operand:SI 1 "register_operand" "d,d")
> 			  (match_operand:SI 2 "register_operand" "d,d"))
> 		 (match_operand:SI 3 "register_operand" "0,d")))
>   (clobber (match_scratch:SI 4 "=X,l"))
>   (clobber (match_scratch:SI 5 "=X,&d"))]
>  "GENERATE_MADD_MSUB && !TARGET_MIPS16"
>  "@
>    madd\t%1,%2
>    #"
>  [(set_attr "type"	"imadd")
>   (set_attr "accum_in" "3")
>   (set_attr "mode"	"SI")
>   (set_attr "length"	"4,8")])
> 
> Then mips_linked_madd_p can use get_attr_accum_in to check for chains.
> 

I thought I'll butt in since I did a very similar thing for sync_memmodel a couple of months ago.

Is the attached patch what you have in mind?  It is a standalone change by itself and can be checked in if OK.  Sandra can than adjust DSP patches she's working on to use mips_linked_madd_p.

OK to apply if no regressions?

Thanks,

--
Maxim Kuvyrkov
CodeSourcery / Mentor Graphics

-------------- next part --------------
A non-text attachment was scrubbed...
Name: accum_in.ChangeLog
Type: application/octet-stream
Size: 257 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20120814/24a6c40c/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: accum_in.patch
Type: application/octet-stream
Size: 6514 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20120814/24a6c40c/attachment-0001.obj>
-------------- next part --------------



More information about the Gcc-patches mailing list