[Bug target/78362] [7 Regression] ICE: RTL check: expected code 'reg', have 'subreg' in rhs_regno, at rtl.h:1804 during libgomp build

2016-11-30 Thread ktkachov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78362

ktkachov at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #5 from ktkachov at gcc dot gnu.org ---
Fixed.

[Bug target/78362] [7 Regression] ICE: RTL check: expected code 'reg', have 'subreg' in rhs_regno, at rtl.h:1804 during libgomp build

2016-11-30 Thread ktkachov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78362

--- Comment #4 from ktkachov at gcc dot gnu.org ---
Author: ktkachov
Date: Wed Nov 30 12:18:47 2016
New Revision: 243011

URL: https://gcc.gnu.org/viewcvs?rev=243011=gcc=rev
Log:
[AArch64] PR target/78362: Make sure to only take REGNO of a register

PR target/78362
* config/aarch64/aarch64.md (add3): Extract inner expression
from a subreg in operands[1] and don't call REGNO on a non-reg
expression when deciding to force operands[2] into a reg.

* gcc.c-torture/compile/pr78362.c: New test.


Added:
trunk/gcc/testsuite/gcc.c-torture/compile/pr78362.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/aarch64/aarch64.md
trunk/gcc/testsuite/ChangeLog

[Bug target/78362] [7 Regression] ICE: RTL check: expected code 'reg', have 'subreg' in rhs_regno, at rtl.h:1804 during libgomp build

2016-11-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78362

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek  ---
Any progress on this?
  if (!aarch64_plus_immediate (operands[2], mode)
  && can_create_pseudo_p ()
  && !REGNO_PTR_FRAME_P (REGNO (operands[1])))
is indeed wrong, because register_operand allows not just REG, but also SUBREG
of either REG, or MEM (last case only before reload).
I bet for SUBREG with SUBREG_REG being a REG you want to use REGNO_PTR_FRAME_P
similarly on the SUBREG_REG, for SUBREG of MEM I think the final regno is
unlikely going to be REGNO_PTR_FRAME_P.
So:
  rtx op1 = operands[1];
  if (GET_CODE (op1) == SUBREG)
op1 = SUBREG_REG (op1);
  if (!aarch64_plus_immediate (operands[2], mode)
  && can_create_pseudo_p ()
  && (!REG_P (op1)
  || !REGNO_PTR_FRAME_P (REGNO (op1)))
?

[Bug target/78362] [7 Regression] ICE: RTL check: expected code 'reg', have 'subreg' in rhs_regno, at rtl.h:1804 during libgomp build

2016-11-15 Thread ktkachov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78362

ktkachov at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |ktkachov at gcc dot 
gnu.org

--- Comment #2 from ktkachov at gcc dot gnu.org ---
Testing a patch.

[Bug target/78362] [7 Regression] ICE: RTL check: expected code 'reg', have 'subreg' in rhs_regno, at rtl.h:1804 during libgomp build

2016-11-15 Thread ktkachov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78362

ktkachov at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2016-11-15
 CC||ktkachov at gcc dot gnu.org
   Target Milestone|--- |7.0
 Ever confirmed|0   |1

--- Comment #1 from ktkachov at gcc dot gnu.org ---
Confirmed while trying to build an RTL checking cross compiler