[Bug target/60032] [4.9 regression] ICE in reload_cse_simplify_operands, at postreload.c:411

2014-04-04 Thread wschmidt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60032

--- Comment #10 from Bill Schmidt wschmidt at gcc dot gnu.org ---
Author: wschmidt
Date: Fri Apr  4 15:10:24 2014
New Revision: 209114

URL: http://gcc.gnu.org/viewcvs?rev=209114root=gccview=rev
Log:
2014-04-04  Bill Schmidt  wschm...@linux.vnet.ibm.com

Back port from trunk
2013-04-25  Alan Modra  amo...@gmail.com

PR target/57052
* config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
(rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
Repeat for many other rotate/shift and mask patterns using subregs.
Name lshiftrt insns.
(ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
on WORDS_BIG_ENDIAN.

2013-06-07  Alan Modra  amo...@gmail.com

* config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
override user -mfp-in-toc.
(offsettable_ok_by_alignment): Consider just the current access
rather than the whole object, unless BLKmode.  Handle
CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
(use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
for -mcmodel=medium.
* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
override user -mfp-in-toc or -msum-in-toc.  Default to
-mno-fp-in-toc for -mcmodel=medium.

2013-06-18  Alan Modra  amo...@gmail.com

* config/rs6000/rs6000.h (enum data_align): New.
(LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
(DATA_ABI_ALIGNMENT): Define.
(CONSTANT_ALIGNMENT): Correct comment.
* config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
* config/rs6000/rs6000.c (rs6000_data_alignment): New function.

2013-07-11  Ulrich Weigand  ulrich.weig...@de.ibm.com

* config/rs6000/rs6000.md (*tls_gd_lowTLSmode:tls_abi_suffix):
Require GOT register as additional operand in UNSPEC.
(*tls_ld_lowTLSmode:tls_abi_suffix): Likewise.
(*tls_got_dtprel_lowTLSmode:tls_abi_suffix): Likewise.
(*tls_got_tprel_lowTLSmode:tls_abi_suffix): Likewise.
(*tls_gdTLSmode:tls_abi_suffix): Update splitter.
(*tls_ldTLSmode:tls_abi_suffix): Likewise.
(tls_got_dtprel_TLSmode:tls_abi_suffix): Likewise.
(tls_got_tprel_TLSmode:tls_abi_suffix): Likewise.

2014-01-23  Pat Haugen  pthau...@us.ibm.com

* config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
force flag_ira_loop_pressure if set via command line.

2014-02-06  Alan Modra  amo...@gmail.com

PR target/60032
* config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
change SDmode to DDmode when lra_in_progress.


Modified:
branches/gcc-4_8-branch/gcc/ChangeLog
branches/gcc-4_8-branch/gcc/config/rs6000/linux64.h
branches/gcc-4_8-branch/gcc/config/rs6000/rs6000-protos.h
branches/gcc-4_8-branch/gcc/config/rs6000/rs6000.c
branches/gcc-4_8-branch/gcc/config/rs6000/rs6000.h
branches/gcc-4_8-branch/gcc/config/rs6000/rs6000.md


[Bug target/60032] [4.9 regression] ICE in reload_cse_simplify_operands, at postreload.c:411

2014-03-14 Thread meissner at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60032

--- Comment #9 from Michael Meissner meissner at gcc dot gnu.org ---
Author: meissner
Date: Fri Mar 14 19:36:18 2014
New Revision: 208574

URL: http://gcc.gnu.org/viewcvs?rev=208574root=gccview=rev
Log:
2014-03-12  Michael Meissner  meiss...@linux.vnet.ibm.com

Back port from trunk
2013-04-25  Alan Modra  amo...@gmail.com

PR target/57052
* config/rs6000/rs6000.md (rotlsi3_internal7): Rename to
rotlsi3_internal7le and condition on !BYTES_BIG_ENDIAN.
(rotlsi3_internal8be): New BYTES_BIG_ENDIAN insn.
Repeat for many other rotate/shift and mask patterns using subregs.
Name lshiftrt insns.
(ashrdisi3_noppc64): Rename to ashrdisi3_noppc64be and condition
on WORDS_BIG_ENDIAN.

2013-06-07  Alan Modra  amo...@gmail.com

* config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
override user -mfp-in-toc.
(offsettable_ok_by_alignment): Consider just the current access
rather than the whole object, unless BLKmode.  Handle
CONSTANT_POOL_ADDRESS_P constants that lack a decl too.
(use_toc_relative_ref): Allow CONSTANT_POOL_ADDRESS_P constants
for -mcmodel=medium.
* config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Don't
override user -mfp-in-toc or -msum-in-toc.  Default to
-mno-fp-in-toc for -mcmodel=medium.

2013-06-18  Alan Modra  amo...@gmail.com

* config/rs6000/rs6000.h (enum data_align): New.
(LOCAL_ALIGNMENT, DATA_ALIGNMENT): Use rs6000_data_alignment.
(DATA_ABI_ALIGNMENT): Define.
(CONSTANT_ALIGNMENT): Correct comment.
* config/rs6000/rs6000-protos.h (rs6000_data_alignment): Declare.
* config/rs6000/rs6000.c (rs6000_data_alignment): New function.

2013-07-11  Ulrich Weigand  ulrich.weig...@de.ibm.com

* config/rs6000/rs6000.md (*tls_gd_lowTLSmode:tls_abi_suffix):
Require GOT register as additional operand in UNSPEC.
(*tls_ld_lowTLSmode:tls_abi_suffix): Likewise.
(*tls_got_dtprel_lowTLSmode:tls_abi_suffix): Likewise.
(*tls_got_tprel_lowTLSmode:tls_abi_suffix): Likewise.
(*tls_gdTLSmode:tls_abi_suffix): Update splitter.
(*tls_ldTLSmode:tls_abi_suffix): Likewise.
(tls_got_dtprel_TLSmode:tls_abi_suffix): Likewise.
(tls_got_tprel_TLSmode:tls_abi_suffix): Likewise.

2014-01-23  Pat Haugen  pthau...@us.ibm.com

* config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
force flag_ira_loop_pressure if set via command line.

2014-02-06  Alan Modra  amo...@gmail.com

PR target/60032
* config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
change SDmode to DDmode when lra_in_progress.


Modified:
branches/ibm/gcc-4_8-branch/gcc/ChangeLog.ibm
branches/ibm/gcc-4_8-branch/gcc/config/rs6000/linux64.h
branches/ibm/gcc-4_8-branch/gcc/config/rs6000/rs6000-protos.h
branches/ibm/gcc-4_8-branch/gcc/config/rs6000/rs6000.c
branches/ibm/gcc-4_8-branch/gcc/config/rs6000/rs6000.h
branches/ibm/gcc-4_8-branch/gcc/config/rs6000/rs6000.md


[Bug target/60032] [4.9 regression] ICE in reload_cse_simplify_operands, at postreload.c:411

2014-02-09 Thread amodra at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60032

--- Comment #8 from Alan Modra amodra at gmail dot com ---
*** Bug 60029 has been marked as a duplicate of this bug. ***


[Bug target/60032] [4.9 regression] ICE in reload_cse_simplify_operands, at postreload.c:411

2014-02-07 Thread pthaugen at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60032

Pat Haugen pthaugen at gcc dot gnu.org changed:

   What|Removed |Added

 CC||pthaugen at gcc dot gnu.org

--- Comment #7 from Pat Haugen pthaugen at gcc dot gnu.org ---
*** Bug 59762 has been marked as a duplicate of this bug. ***


[Bug target/60032] [4.9 regression] ICE in reload_cse_simplify_operands, at postreload.c:411

2014-02-06 Thread amodra at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60032

--- Comment #4 from Alan Modra amodra at gcc dot gnu.org ---
Author: amodra
Date: Thu Feb  6 13:25:38 2014
New Revision: 207553

URL: http://gcc.gnu.org/viewcvs?rev=207553root=gccview=rev
Log:
PR target/60032
gcc/
* config/rs6000/rs6000.c (rs6000_secondary_memory_needed_mode): Only
change SDmode to DDmode when lra_in_progress.
gcc/testsuite/
* gcc.target/powerpc/pr60032.c: New.


Added:
trunk/gcc/testsuite/gcc.target/powerpc/pr60032.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/rs6000/rs6000.c
trunk/gcc/testsuite/ChangeLog


[Bug target/60032] [4.9 regression] ICE in reload_cse_simplify_operands, at postreload.c:411

2014-02-06 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60032

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org ---
So fixed?


[Bug target/60032] [4.9 regression] ICE in reload_cse_simplify_operands, at postreload.c:411

2014-02-06 Thread amodra at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60032

Alan Modra amodra at gmail dot com changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #6 from Alan Modra amodra at gmail dot com ---
Yes, and the offending patch didn't make its way into 4.8.


[Bug target/60032] [4.9 regression] ICE in reload_cse_simplify_operands, at postreload.c:411

2014-02-04 Thread amodra at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60032

Alan Modra amodra at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2014-02-04
 CC||amodra at gmail dot com
 Ever confirmed|0   |1

--- Comment #1 from Alan Modra amodra at gmail dot com ---
Reduced testcase

void foo (void)
{
  register float __attribute__ ((mode(SD))) r31 __asm__ (r31);
  register float __attribute__ ((mode(SD))) fr1 __asm__ (fr1);

  __asm__ (# : =d (fr1));
  r31 = fr1;
  __asm__ (# : : r (r31));
}


This:
enum machine_mode
rs6000_secondary_memory_needed_mode (enum machine_mode mode)
{
  if (mode == SDmode)
return DDmode;
  return mode;
}

doesn't play well with the following code in reload1.c

#ifdef SECONDARY_MEMORY_NEEDED
  /* If we need a memory location to do the move, do it that way.  */
  else if ((tem1 = replaced_subreg (in), tem2 = replaced_subreg (out),
(REG_P (tem1)  REG_P (tem2)))
REGNO (tem1)  FIRST_PSEUDO_REGISTER
REGNO (tem2)  FIRST_PSEUDO_REGISTER
SECONDARY_MEMORY_NEEDED (REGNO_REG_CLASS (REGNO (tem1)),
   REGNO_REG_CLASS (REGNO (tem2)),
   GET_MODE (out)))
{
  /* Get the memory to use and rewrite both registers to its mode.  */
  rtx loc = get_secondary_mem (in, GET_MODE (out), opnum, type);

  if (GET_MODE (loc) != GET_MODE (out))
out = gen_rtx_REG (GET_MODE (loc), reg_or_subregno (out));

  if (GET_MODE (loc) != GET_MODE (in))
in = gen_rtx_REG (GET_MODE (loc), reg_or_subregno (in));

  gen_reload (loc, in, opnum, type);
  gen_reload (out, loc, opnum, type);
}
#endif

get_secondary_mem() gives you a DD mem, and the reload out reg
(reg/v:SD 31 31 [ r31 ]) is rewritten to (reg/v:DD 31 31 [ r31 ])

A DDmode requires two gprs when 32-bit, and of course we don't have r32..


[Bug target/60032] [4.9 regression] ICE in reload_cse_simplify_operands, at postreload.c:411

2014-02-04 Thread amodra at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60032

Alan Modra amodra at gmail dot com changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 CC|amodra at gcc dot gnu.org  |
   Assignee|unassigned at gcc dot gnu.org  |amodra at gmail dot com

--- Comment #2 from Alan Modra amodra at gmail dot com ---
Looks to be as simple as deleting SECONDARY_MEMORY_NEEDED_MODE.  Testing..


[Bug target/60032] [4.9 regression] ICE in reload_cse_simplify_operands, at postreload.c:411

2014-02-04 Thread amodra at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60032

--- Comment #3 from Alan Modra amodra at gmail dot com ---
No, not quite.  SECONDARY_MEMORY_NEEDED_MODE looks to be required by lra, so
make rs6000_secondary_memory_needed_mode depend on lra_in_progress.


[Bug target/60032] [4.9 regression] ICE in reload_cse_simplify_operands, at postreload.c:411

2014-02-03 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60032

Richard Biener rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P1


[Bug target/60032] [4.9 regression] ICE in reload_cse_simplify_operands, at postreload.c:411

2014-02-02 Thread sch...@linux-m68k.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60032

Andreas Schwab sch...@linux-m68k.org changed:

   What|Removed |Added

   Target Milestone|--- |4.9.0