Hi, From origin insn seqs, I think the insn 'r500=unspec[r100] 300’ is in Good place because of the bypass of my pipeline description, it is not needed to schedule.
But the result of Sched1 pass schedule it, I check the souce code of sched-rgn.c & haifa-sched.c From compute_priorities() I think the dependence of insn consider dependence of register Or memory first, but do not include any cpu resource conflict with defined by ‘define_cpu_unit' Is there any way to control my case ? Or my description of pipeline is not good ? My gcc version is 8.1.0 insn seqs from Origin: r80=VAL r100=unspec[r80] 200 r81=VAL r101=unspec[r81] 200 r500=unspec[r100] 300 r82=VAL r102=unspec[r82] 200 r501=unspec[r101] 300 r502=unspec[r102] 300 ------------------------ My pipeline like as: (define_cpu_unit "ex1, ex2” "pipe_name") (define_cpu_unit “tx” "pipe_name") Insn unspec 200 as T1, latency is 12, use ex1,2 Insn unspec 300 as T2, latency is 12, use tx (define_bypass 0 “T1” "T2") ------------------------ insn seqs after Sched1: r80=VAL r81=VAL r82=VAL r100=unspec[r80] 200 r101=unspec[r81] 200 r102=unspec[r82] 200 r500=unspec[r100] 300 r501=unspec[r101] 300 r502=unspec[r102] 300 Jojo