On 3/19/19 2:00 PM, Jakub Jelinek wrote:
Hi!

As mentioned in the PR, BLKmode operands (such as in the testcase C++
variables with TREE_ADDRESSABLE types) may only live in a MEM, trying to
reload those in a register will always ICE.  process_alt_operands already
has if (mode == BLKmode) break; in it, so that it never claims a BLKmode
wins when seen a register constraint, but it still updated this_alternative
and this_alternative_set, so if a register constraint (or more of them)
is accompanied also by memory constraint that matches, we still let the
caller believe it could try to reload in registers.  It can't.
This patch ensures that we ignore those register constraints completely.

Bootstrapped/regtested on x86_64-linux and i686-linux, further bootstraps
pending on {powerpc64le,aarch64,s390x,armv7hl}-linux, ok for trunk if those
pass?

Yes, sure. Thanks for working on the PR, Jakub.



Reply via email to