On Mon, 14 Mar 2016, Andrey Belevantsev wrote: > In this case, we get an inconsistency between the sched-deps interface, saying > we can't move an insn writing the si register through a vector insn, and the > liveness analysis, saying we can. The latter doesn't take into account > implicit_reg_pending_clobbers set calculated in sched-deps before register > allocation. The solution is to reflect this set in our insn data > (sets/uses/clobbers). > > Ok for trunk?
One nit; the prototype of the new function: extern void get_implicit_reg_pending_clobbers (rtx_insn *, HARD_REG_SET *); has source operand on the left, destination on the right; it's probably nicer to swap them around. OK as far as selective scheduler changes go, but this also needs a general scheduler maintainer ack for the sched-deps.c change. Vladimir, can you have a look? Thanks. Alexander