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