When I write schedule model for following instructions:

Insn1: mov %r1, %r2
Insn2: mov %r1, %r3
Insn3: foo %r2, %r3 (foo is a 3 op insn, for example, %r3 = %r3 << %r2)

Latency from insn1 to insn3 is x cycles, and latency from insn2 to insn3 is y 
cycles. x != y.

Both insn1 and insn2 are insn_reservation_mov. Insn3 are insn_reservation_foo.

When I define bypass for them I found I couldn't do it. I can only define one 
bypass from mov to foo, like this:
(define_bypass x "insn_reservation_mov" "insn_reservation_foo" "condition1")

If I define following bypass too, gcc will report error:
(define_bypass y "insn_reservation_mov" "insn_reservation_foo" "condition2")

genautomata: bypass `insn_reservation_lea - insn_reservation_foo' is already 
defined

Anyone can help me through this please?

Thanks - Joey
 

Reply via email to