On 03/14/2016 05:23 PM, Alexander Monakov wrote:
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?

Needs better documentation of the new function's arguments (as per general requirements for such things), but otherwise that part is ok (either arg order). The sel-sched parts should also have proper function comments however, and here:

+    {
+      SET_REGNO_REG_SET (IDATA_REG_SETS (id), regno);
+    }

we don't use braces around single statements.


Bernd

Reply via email to