two dfa problems

Richard Henderson rth@redhat.com
Fri May 3 17:01:00 GMT 2002


On Fri, May 03, 2002 at 03:39:52PM -0700, Richard Henderson wrote:
> (2) Too many instructions issued per cycle.
> 
>     The .28.sched2 dump contains for MAIN__
> 
>          16--> 1144 $29=unspec[$29,0x3e] 10            :ev5_e01
>          16--> 34   $16=$9                             :ev5_e01
>          16--> 38   $18=0x18                           :ev5_e01
>          16--> 40   $19=0x18                           :ev5_e01

Turns out this is due to how I'd separated the automata.
I'd hope that this isn't an intended side effect of using
multiple automata.  I get correct (integer) results by
making the following change:

--- /home/rth/ev5.md	Fri May  3 16:52:02 2002
+++ ev5.md	Fri May  3 16:55:42 2002
@@ -21,9 +21,9 @@
 ;; EV5 has two asymetric integer units, E0 and E1, plus separate
 ;; FP add and multiply units.
 
-(define_automaton "ev5_0,ev5_1,ev5_2")
+(define_automaton "ev5_0,ev5_2")
 (define_cpu_unit "ev5_e1,ev5_fm" "ev5_0")
-(define_cpu_unit "ev5_e0,ev5_imul" "ev5_1")
+(define_cpu_unit "ev5_e0,ev5_imul" "ev5_0")
 (define_cpu_unit "ev5_fa,ev5_fdiv" "ev5_2")
 (define_reservation "ev5_e01" "ev5_e0|ev5_e1")
 (define_reservation "ev5_fam" "ev5_fa|ev5_fm")



r~



More information about the Gcc-bugs mailing list