This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [4.0 PATCH] Fix PR 20927


Ulrich Weigand wrote:
Richard Sandiford wrote:


      PR rtl-optimization/19683
      * reload1.c (choose_reload_regs): Pass the number of bits, not the
      number of bytes, to smallest_int_for_mode.  Fix arguments to
      REG_CANNOT_CHANGE_MODE_P.


Unfortunately, this change triggers PR 20927, an ICE on s390x
(a regression of 4.0 over 3.4).

The problematic case is where we reload:

(subreg:DF (reg:TI pseudo) 8)

When computing the "needed mode", choose_reload_regs now calls

smallest_mode_for_size (128, MODE_FLOAT)

which ICEs because the largest floating-point mode on s390x is DFmode.

Unless this manifests as a regression on a primary/secondary platform, I'm not going to include this one in 4.0.0. It could go in 4.0.1, if approved by an appropriate maintainer at that point.


--
Mark Mitchell
CodeSourcery, LLC
mark@codesourcery.com
(916) 791-8304


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]