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

--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
It's actually generating correct code.  So what is missing is propagating
the load into the weird SSA indexing.  Or making RTL expansion do the same.
The difference is that for the bad case v is assigned a register but
RTL expansion goes through the stack all the time while for the good case
it's assigned memory in the first place.  This is because of
cfgexpands discover_nonconstant_array_refs (as I said, the GIMPLE IL using
a SSA name as base of an ARRAY_REF is questionable).

Reply via email to