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