public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/60675] New: [4.9 regression][aarch64] internal compiler error: Max. number of generated reload insns per insn is achieved (90)
@ 2014-03-26 16:53 david.abdurachmanov at gmail dot com
2014-03-26 17:02 ` [Bug c++/60675] " david.abdurachmanov at gmail dot com
` (12 more replies)
0 siblings, 13 replies; 14+ messages in thread
From: david.abdurachmanov at gmail dot com @ 2014-03-26 16:53 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60675
Bug ID: 60675
Summary: [4.9 regression][aarch64] internal compiler error:
Max. number of generated reload insns per insn is
achieved (90)
Product: gcc
Version: 4.9.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: david.abdurachmanov at gmail dot com
$ rpm --eval "%{_build}"
aarch64-redhat-linux-gnu
Compiles fine with system GCC (gcc version 4.8.1 20130920 (Red Hat 4.8.1-10)
(GCC)).
Fails with pre-4.9.0 (tested 208693 and trunk [208843]).
Compiles fine with trunk on x86_64.
Compiles fine on aarch64 is `-fPIC` is removed from compilation line.
Attaching minimized pre-processed file.
## COMPILE ##
g++ -std=c++11 -O2 -fPIC -o G4ErrorFreeTrajState.cc.o -c
G4ErrorFreeTrajState2.ii
## ICE ##
G4ErrorFreeTrajState2.ii: In member function 'virtual G4int
G4ErrorFreeTrajState::PropagateError(const G4Track*)':
G4ErrorFreeTrajState2.ii:35892:1: internal compiler error: Max. number of
generated reload insns per insn is achieved (90)
}
^
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug c++/60675] [4.9 regression][aarch64] internal compiler error: Max. number of generated reload insns per insn is achieved (90)
2014-03-26 16:53 [Bug c++/60675] New: [4.9 regression][aarch64] internal compiler error: Max. number of generated reload insns per insn is achieved (90) david.abdurachmanov at gmail dot com
@ 2014-03-26 17:02 ` david.abdurachmanov at gmail dot com
2014-03-26 17:08 ` ktkachov at gcc dot gnu.org
` (11 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: david.abdurachmanov at gmail dot com @ 2014-03-26 17:02 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60675
--- Comment #1 from David Abdurachmanov <david.abdurachmanov at gmail dot com> ---
Seems the testcase is too large. Trimming it more usually causes it not to ICE,
but will try to trim more.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug c++/60675] [4.9 regression][aarch64] internal compiler error: Max. number of generated reload insns per insn is achieved (90)
2014-03-26 16:53 [Bug c++/60675] New: [4.9 regression][aarch64] internal compiler error: Max. number of generated reload insns per insn is achieved (90) david.abdurachmanov at gmail dot com
2014-03-26 17:02 ` [Bug c++/60675] " david.abdurachmanov at gmail dot com
@ 2014-03-26 17:08 ` ktkachov at gcc dot gnu.org
2014-03-26 18:33 ` pinskia at gcc dot gnu.org
` (10 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: ktkachov at gcc dot gnu.org @ 2014-03-26 17:08 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60675
ktkachov at gcc dot gnu.org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |ktkachov at gcc dot gnu.org
--- Comment #2 from ktkachov at gcc dot gnu.org ---
Can you try compiling the testcase with -mno-lra?
Seems like something that could be related to LRA.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/60675] [4.9 regression][aarch64] internal compiler error: Max. number of generated reload insns per insn is achieved (90)
2014-03-26 16:53 [Bug c++/60675] New: [4.9 regression][aarch64] internal compiler error: Max. number of generated reload insns per insn is achieved (90) david.abdurachmanov at gmail dot com
` (2 preceding siblings ...)
2014-03-26 18:33 ` pinskia at gcc dot gnu.org
@ 2014-03-26 18:33 ` pinskia at gcc dot gnu.org
2014-03-26 18:41 ` david.abdurachmanov at gmail dot com
` (8 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: pinskia at gcc dot gnu.org @ 2014-03-26 18:33 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60675
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |ice-on-valid-code
Target| |aarch64-none-linux-gnu
Component|c++ |target
Target Milestone|--- |4.9.0
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug c++/60675] [4.9 regression][aarch64] internal compiler error: Max. number of generated reload insns per insn is achieved (90)
2014-03-26 16:53 [Bug c++/60675] New: [4.9 regression][aarch64] internal compiler error: Max. number of generated reload insns per insn is achieved (90) david.abdurachmanov at gmail dot com
2014-03-26 17:02 ` [Bug c++/60675] " david.abdurachmanov at gmail dot com
2014-03-26 17:08 ` ktkachov at gcc dot gnu.org
@ 2014-03-26 18:33 ` pinskia at gcc dot gnu.org
2014-03-26 18:33 ` [Bug target/60675] " pinskia at gcc dot gnu.org
` (9 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: pinskia at gcc dot gnu.org @ 2014-03-26 18:33 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60675
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to David Abdurachmanov from comment #1)
> Seems the testcase is too large. Trimming it more usually causes it not to
> ICE, but will try to trim more.
Does compressing it help with the size to attach it?
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/60675] [4.9 regression][aarch64] internal compiler error: Max. number of generated reload insns per insn is achieved (90)
2014-03-26 16:53 [Bug c++/60675] New: [4.9 regression][aarch64] internal compiler error: Max. number of generated reload insns per insn is achieved (90) david.abdurachmanov at gmail dot com
` (3 preceding siblings ...)
2014-03-26 18:33 ` [Bug target/60675] " pinskia at gcc dot gnu.org
@ 2014-03-26 18:41 ` david.abdurachmanov at gmail dot com
2014-03-26 19:02 ` pinskia at gcc dot gnu.org
` (7 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: david.abdurachmanov at gmail dot com @ 2014-03-26 18:41 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60675
--- Comment #5 from David Abdurachmanov <david.abdurachmanov at gmail dot com> ---
Created attachment 32460
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32460&action=edit
Minimized pre-processed file
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/60675] [4.9 regression][aarch64] internal compiler error: Max. number of generated reload insns per insn is achieved (90)
2014-03-26 16:53 [Bug c++/60675] New: [4.9 regression][aarch64] internal compiler error: Max. number of generated reload insns per insn is achieved (90) david.abdurachmanov at gmail dot com
` (4 preceding siblings ...)
2014-03-26 18:41 ` david.abdurachmanov at gmail dot com
@ 2014-03-26 19:02 ` pinskia at gcc dot gnu.org
2014-03-26 21:47 ` pinskia at gcc dot gnu.org
` (6 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: pinskia at gcc dot gnu.org @ 2014-03-26 19:02 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60675
--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
I can reproduce it, I am trying to reduce it. Note using -mcpu=cortex-a57 also
causes the internal error to go away. So I think the scheduler before the
register allocator is causing some differences.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/60675] [4.9 regression][aarch64] internal compiler error: Max. number of generated reload insns per insn is achieved (90)
2014-03-26 16:53 [Bug c++/60675] New: [4.9 regression][aarch64] internal compiler error: Max. number of generated reload insns per insn is achieved (90) david.abdurachmanov at gmail dot com
` (5 preceding siblings ...)
2014-03-26 19:02 ` pinskia at gcc dot gnu.org
@ 2014-03-26 21:47 ` pinskia at gcc dot gnu.org
2014-03-27 0:12 ` pinskia at gcc dot gnu.org
` (5 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: pinskia at gcc dot gnu.org @ 2014-03-26 21:47 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60675
--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Created attachment 32461
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=32461&action=edit
More reduced (below 14k)
>From this reduced testcase here is the most important info from the reload
dump:
344: r173:DF=r594:DF-r693:DF
REG_DEAD r594:DF
REG_EQUAL 1.0e+0-r324:DF
Inserting insn reload before:
749: r693:DF=r324:DF
Staticly defined alt reject+=6
0 Non pseudo reload: reject++
alt=0,overall=7,losers=0,rld_nregs=0
Choosing alt 0 in insn 749: (0) =w (1) ?rY {*movdf_aarch64}
Staticly defined alt reject+=6
0 Non input pseudo reload: reject++
1 Non-pseudo reload: reject+=2
1 Non input pseudo reload: reject++
alt=0,overall=22,losers=2,rld_nregs=2
Staticly defined alt reject+=6
1 Non-pseudo reload: reject+=2
1 Non input pseudo reload: reject++
alt=1,overall=15,losers=1,rld_nregs=1
0 Non input pseudo reload: reject++
1 Non-pseudo reload: reject+=2
1 Non input pseudo reload: reject++
alt=2,overall=16,losers=2 -- refuse
0 Non input pseudo reload: reject++
alt=3: Bad operand -- refuse
0 Non input pseudo reload: reject++
alt=4,overall=7,losers=1,rld_nregs=1
0 Spill pseudo into memory: reject+=3
0 Non input pseudo reload: reject++
alt=5,overall=10,losers=1 -- refuse
alt=6,overall=0,losers=0,rld_nregs=0
Choosing alt 6 in insn 266: (0) r (1) m {*movdf_aarch64}
Staticly defined alt reject+=6
alt=0,overall=12,losers=1,rld_nregs=1
Staticly defined alt reject+=6
0 Non-pseudo reload: reject+=2
0 Non input pseudo reload: reject++
alt=1,overall=15,losers=1 -- refuse
alt=2,overall=0,losers=0,rld_nregs=0
Choosing alt 2 in insn 262: (0) w (1) w {*movdf_aarch64}
Staticly defined alt reject+=6
alt=0,overall=12,losers=1,rld_nregs=1
Staticly defined alt reject+=6
0 Non input pseudo reload: reject++
alt=1,overall=13,losers=1 -- refuse
alt=2,overall=606,losers=1,rld_nregs=1
alt=3: Bad operand -- refuse
1 Non pseudo reload: reject++
alt=4,overall=1,losers=0,rld_nregs=0
Choosing alt 4 in insn 744: (0) w (1) m {*movdf_aarch64}
Staticly defined alt reject+=6
0 Non input pseudo reload: reject++
alt=0,overall=619,losers=2,rld_nregs=2
Staticly defined alt reject+=6
0 Non input pseudo reload: reject++
alt=1,overall=13,losers=1,rld_nregs=1
0 Non input pseudo reload: reject++
alt=2,overall=607,losers=1,rld_nregs=1
0 Non input pseudo reload: reject++
alt=3: Bad operand -- refuse
0 Non input pseudo reload: reject++
1 Spill pseudo into memory: reject+=3
alt=4,overall=16,losers=2 -- refuse
0 Non pseudo reload: reject++
alt=5,overall=1,losers=0,rld_nregs=0
Choosing alt 5 in insn 743: (0) m (1) w {*movdf_aarch64}
0 Non input pseudo reload: reject++
alt=0,overall=613,losers=2,rld_nregs=4
0 Costly loser: reject++
0 Non input pseudo reload: reject++
alt=1,overall=14,losers=2,rld_nregs=4
0 Non input pseudo reload: reject++
1 Costly loser: reject++
alt=2,overall=614,losers=2,rld_nregs=4
0 Costly loser: reject++
0 Non input pseudo reload: reject++
1 Costly loser: reject++
alt=3,overall=15,losers=2 -- refuse
0 Non input pseudo reload: reject++
1 Spill pseudo into memory: reject+=3
alt=4,overall=16,losers=2 -- refuse
0 Non pseudo reload: reject++
alt=5,overall=7,losers=1,rld_nregs=2
0 Non pseudo reload: reject++
alt=6: Bad operand -- refuse
0 Costly loser: reject++
0 Non input pseudo reload: reject++
alt=7,overall=8,losers=1 -- refuse
0 Non pseudo reload: reject++
1 Costly loser: reject++
alt=8,overall=8,losers=1 -- refuse
Choosing alt 5 in insn 737: (0) Ump (1) r {*movti_aarch64}
Creating newreg=694, assigning class CORE_REGS to r694
It decides to use movti_aarch64 for some reason even though we don't have a
TImode here, only DFmode or DImode.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/60675] [4.9 regression][aarch64] internal compiler error: Max. number of generated reload insns per insn is achieved (90)
2014-03-26 16:53 [Bug c++/60675] New: [4.9 regression][aarch64] internal compiler error: Max. number of generated reload insns per insn is achieved (90) david.abdurachmanov at gmail dot com
` (6 preceding siblings ...)
2014-03-26 21:47 ` pinskia at gcc dot gnu.org
@ 2014-03-27 0:12 ` pinskia at gcc dot gnu.org
2014-03-28 11:40 ` jakub at gcc dot gnu.org
` (4 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: pinskia at gcc dot gnu.org @ 2014-03-27 0:12 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60675
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2014-03-27
Ever confirmed|0 |1
--- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Confirmed by my reduced testcase.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/60675] [4.9 regression][aarch64] internal compiler error: Max. number of generated reload insns per insn is achieved (90)
2014-03-26 16:53 [Bug c++/60675] New: [4.9 regression][aarch64] internal compiler error: Max. number of generated reload insns per insn is achieved (90) david.abdurachmanov at gmail dot com
` (7 preceding siblings ...)
2014-03-27 0:12 ` pinskia at gcc dot gnu.org
@ 2014-03-28 11:40 ` jakub at gcc dot gnu.org
2014-03-28 12:03 ` ktkachov at gcc dot gnu.org
` (3 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: jakub at gcc dot gnu.org @ 2014-03-28 11:40 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60675
--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Note I couldn't reproduce this with a cross from x86_64-linux to aarch64-linux,
wonder what is the important difference. While I don't have cross binutils
installed, I made sure I have HAVE_GAS_HIDDEN and HAVE_AS_TLS enabled in
auto-host.h.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/60675] [4.9 regression][aarch64] internal compiler error: Max. number of generated reload insns per insn is achieved (90)
2014-03-26 16:53 [Bug c++/60675] New: [4.9 regression][aarch64] internal compiler error: Max. number of generated reload insns per insn is achieved (90) david.abdurachmanov at gmail dot com
` (8 preceding siblings ...)
2014-03-28 11:40 ` jakub at gcc dot gnu.org
@ 2014-03-28 12:03 ` ktkachov at gcc dot gnu.org
2014-03-28 13:32 ` vmakarov at gcc dot gnu.org
` (2 subsequent siblings)
12 siblings, 0 replies; 14+ messages in thread
From: ktkachov at gcc dot gnu.org @ 2014-03-28 12:03 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60675
--- Comment #10 from ktkachov at gcc dot gnu.org ---
(In reply to Jakub Jelinek from comment #9)
> Note I couldn't reproduce this with a cross from x86_64-linux to
> aarch64-linux, wonder what is the important difference. While I don't have
> cross binutils installed, I made sure I have HAVE_GAS_HIDDEN and HAVE_AS_TLS
> enabled in auto-host.h.
I can reproduce it with an aarch64-none-elf cross compiler at revision 208889
configured with:
--with-pkgversion=unknown --disable-shared --disable-nls --disable-threads
--disable-tls --enable-checking=yes --enable-languages=c,c++,fortran
--with-newlib --with-cpu=cortex-a53 --with-arch=armv8-a
I haven't tried a linux compiler, I'll try that next...
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/60675] [4.9 regression][aarch64] internal compiler error: Max. number of generated reload insns per insn is achieved (90)
2014-03-26 16:53 [Bug c++/60675] New: [4.9 regression][aarch64] internal compiler error: Max. number of generated reload insns per insn is achieved (90) david.abdurachmanov at gmail dot com
` (9 preceding siblings ...)
2014-03-28 12:03 ` ktkachov at gcc dot gnu.org
@ 2014-03-28 13:32 ` vmakarov at gcc dot gnu.org
2014-03-28 15:28 ` vmakarov at gcc dot gnu.org
2014-03-28 15:49 ` jakub at gcc dot gnu.org
12 siblings, 0 replies; 14+ messages in thread
From: vmakarov at gcc dot gnu.org @ 2014-03-28 13:32 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60675
--- Comment #11 from Vladimir Makarov <vmakarov at gcc dot gnu.org> ---
I've been working on it. I hope the patch will be ready today.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/60675] [4.9 regression][aarch64] internal compiler error: Max. number of generated reload insns per insn is achieved (90)
2014-03-26 16:53 [Bug c++/60675] New: [4.9 regression][aarch64] internal compiler error: Max. number of generated reload insns per insn is achieved (90) david.abdurachmanov at gmail dot com
` (10 preceding siblings ...)
2014-03-28 13:32 ` vmakarov at gcc dot gnu.org
@ 2014-03-28 15:28 ` vmakarov at gcc dot gnu.org
2014-03-28 15:49 ` jakub at gcc dot gnu.org
12 siblings, 0 replies; 14+ messages in thread
From: vmakarov at gcc dot gnu.org @ 2014-03-28 15:28 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60675
--- Comment #12 from Vladimir Makarov <vmakarov at gcc dot gnu.org> ---
Author: vmakarov
Date: Fri Mar 28 15:27:58 2014
New Revision: 208900
URL: http://gcc.gnu.org/viewcvs?rev=208900&root=gcc&view=rev
Log:
2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
PR target/60675
* lra-assigns.c (find_hard_regno_for): Remove unavailable hard
regs from checking multi-reg pseudos.
2014-03-28 Vladimir Makarov <vmakarov@redhat.com>
PR target/60675
* gcc.target/aarch64/pr60675.C: New.
Added:
trunk/gcc/testsuite/gcc.target/aarch64/pr60675.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/lra-assigns.c
trunk/gcc/testsuite/ChangeLog
^ permalink raw reply [flat|nested] 14+ messages in thread
* [Bug target/60675] [4.9 regression][aarch64] internal compiler error: Max. number of generated reload insns per insn is achieved (90)
2014-03-26 16:53 [Bug c++/60675] New: [4.9 regression][aarch64] internal compiler error: Max. number of generated reload insns per insn is achieved (90) david.abdurachmanov at gmail dot com
` (11 preceding siblings ...)
2014-03-28 15:28 ` vmakarov at gcc dot gnu.org
@ 2014-03-28 15:49 ` jakub at gcc dot gnu.org
12 siblings, 0 replies; 14+ messages in thread
From: jakub at gcc dot gnu.org @ 2014-03-28 15:49 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60675
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution|--- |FIXED
--- Comment #13 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Fixed then.
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2014-03-28 15:49 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-03-26 16:53 [Bug c++/60675] New: [4.9 regression][aarch64] internal compiler error: Max. number of generated reload insns per insn is achieved (90) david.abdurachmanov at gmail dot com
2014-03-26 17:02 ` [Bug c++/60675] " david.abdurachmanov at gmail dot com
2014-03-26 17:08 ` ktkachov at gcc dot gnu.org
2014-03-26 18:33 ` pinskia at gcc dot gnu.org
2014-03-26 18:33 ` [Bug target/60675] " pinskia at gcc dot gnu.org
2014-03-26 18:41 ` david.abdurachmanov at gmail dot com
2014-03-26 19:02 ` pinskia at gcc dot gnu.org
2014-03-26 21:47 ` pinskia at gcc dot gnu.org
2014-03-27 0:12 ` pinskia at gcc dot gnu.org
2014-03-28 11:40 ` jakub at gcc dot gnu.org
2014-03-28 12:03 ` ktkachov at gcc dot gnu.org
2014-03-28 13:32 ` vmakarov at gcc dot gnu.org
2014-03-28 15:28 ` vmakarov at gcc dot gnu.org
2014-03-28 15:49 ` jakub at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).