https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84844

--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
I'm afraid I don't see what sel-sched could do.
It asks the DFA about cost estimate, and that ICEs.
And it ICEs because to determine the estimated cost it needs to estimate which
alternative is going to be used and for that it needs to compute get_attr_type,
which contains extract_constrain_insn_cached if there are multiple alternatives
with different types.

I assume
(match_operand "nonimmediate_operand" "m")
is not really a problem if there is just one alternative, or even if there are
multiple alternatives, but all of them have the same type attribute.  It is
just the case where type is different (or some other attribute that needs to be
queried before reload), which implies extract_constrain_insn_cached and that
ignores alternatives that have NO_REGS, or memory constraint on REG.  For most
constraints in !strict mode, it will win if reg_class_for_constraint (cn) !=
NO_REGS, or, if it is NO_REGS, if constraint_satisfied_p, or a couple of other
cases.

Reply via email to