On 9/4/19 3:18 AM, Richard Sandiford wrote:
> This patch uses the workaround Richi suggested in the PR: make
> discover_nonconstant_array_refs mark the source of an IFN_LOAD_LANES
> call and the destination of an IFN_STORE_LANES call as addressable,
> so that they don't end up being REG rtxes during expansion.
>
> I had to move the discover_nonconstant_array_refs call outside the
> currently_expanding_to_rtl block since otherwise mark_addressable
> just queues the decision for later.
>
> Tested on aarch64-linux-gnu. OK to install?
>
> Richard
>
>
> 2019-09-04 Richard Sandiford <richard.sandif...@arm.com>
>
> gcc/
> PR middle-end/91577
> * cfgexpand.c (discover_nonconstant_array_refs): Force the source
> of an IFN_LOAD_LANES call and the destination of an IFN_STORE_LANES
> call to be in memory.
> (pass_expand::execute): Call discover_nonconstant_array_refs before
> setting currently_expanding_to_rtl.
>
> gcc/testsuite/
> PR middle-end/91577
> * gfortran.dg/pr91577.f90: New test, taken from temporary_1.f90.
OK
jeff