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

--- Comment #6 from Uroš Bizjak <ubizjak at gmail dot com> ---
(In reply to Jakub Jelinek from comment #2)
> The problem is that if a constraint returns NO_REGS before RA (i.e. in
> non-strict mode) then that alternative is ignored, and e.g. get_attr_type
> used by sched1 needs to compute alternative.  As the instruction uses
> nonimmediate_operand and the only alternative with "r" input has "Yc" output
> which is NO_REGS for this -march=, if the operand is a register, there is no
> alternative left.

OTOH, if the above is the problem - we have quite some constructs that declare
insn pattern with (match_operand "nonimmediate_operand" "m"), please see the
comment above floathi<mode>2. The comment also says that LRA will fix up this
during register allocation. Also, -fschedule-insns without
-fselective-scheduling is able to compile the testcase without errors, so it
looks that -fselective-scheduling should be made more robust.

Reply via email to