From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20549 invoked by alias); 25 Jan 2015 16:00:58 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 20338 invoked by uid 48); 25 Jan 2015 16:00:35 -0000 From: "ubizjak at gmail dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug rtl-optimization/64688] [5 Regression] internal compiler error: Max. number of generated reload insns per insn is achieved (90) Date: Sun, 25 Jan 2015 16:00:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: rtl-optimization X-Bugzilla-Version: 5.0 X-Bugzilla-Keywords: ra X-Bugzilla-Severity: normal X-Bugzilla-Who: ubizjak at gmail dot com X-Bugzilla-Status: NEW X-Bugzilla-Priority: P1 X-Bugzilla-Assigned-To: ubizjak at gmail dot com X-Bugzilla-Target-Milestone: 5.0 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: keywords bug_status component Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2015-01/txt/msg02777.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D64688 Uro=C5=A1 Bizjak changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |ra Status|REOPENED |NEW Component|target |rtl-optimization --- Comment #12 from Uro=C5=A1 Bizjak --- (In reply to Markus Trippelsdorf from comment #11) > Created attachment 34566 [details] > reduced testcase >=20 > trippels@gcc20 % g++ -c -O3 -std=3Dc++11 -march=3Dwestmere performance.ii > performance.ii: In function =E2=80=98void performance_testtest_method()= =E2=80=99: > performance.ii:133:1: internal compiler error: Max. number of generated > reload insns per insn is achieved (90) Happens when trying to reload for: (insn 73 72 393 2 (set (reg:V4SI 304) (vec_merge:V4SI (vec_duplicate:V4SI (subreg:SI (reg:QI 103 [ SR.27 = ]) 0)) (const_vector:V4SI [ (const_int 0 [0]) (const_int 0 [0]) (const_int 0 [0]) (const_int 0 [0]) ]) (const_int 1 [0x1]))) 2460 {vec_setv4si_0} (nil)) Reload goes into infinite loop here. Changing pseudo 103 in operand 2 of insn 73 on equiv 0 Creating newreg=3D359, assigning class ALL_REGS to subreg reg r359 73: r304:V4SI=3Dvec_merge(vec_duplicate(r359:QI#0),const_vector,0x1) Inserting subreg reload before: 502: r359:QI=3D0 2 Non pseudo reload: reject++ alt=3D0,overall=3D1,losers=3D0,rld_nregs=3D0 Choosing alt 0 in insn 73: (0) =3DYr (1) C (2) Yr {vec_setv4si_0} Change to class NO_REX_SSE_REGS for r359 0 Non input pseudo reload: reject++ 1 Non-pseudo reload: reject+=3D2 1 Non input pseudo reload: reject++ alt=3D0,overall=3D16,losers=3D2,rld_nregs=3D2 0 Non input pseudo reload: reject++ alt=3D1,overall=3D7,losers=3D1,rld_nregs=3D1 0 Non input pseudo reload: reject++ 1 Non-pseudo reload: reject+=3D2 1 Non input pseudo reload: reject++ alt=3D2,overall=3D16,losers=3D2 -- refuse 0 Non input pseudo reload: reject++ 1 Non-pseudo reload: reject+=3D2 1 Non input pseudo reload: reject++ alt=3D3,overall=3D16,losers=3D2 -- refuse 0 Non input pseudo reload: reject++ alt=3D4,overall=3D7,losers=3D1,rld_nregs=3D1 Staticly defined alt reject+=3D6 0 Non input pseudo reload: reject++ alt=3D5,overall=3D13,losers=3D1 -- refuse 0 Non input pseudo reload: reject++ alt=3D6,overall=3D7,losers=3D1,rld_nregs=3D0 alt=3D7: Bad operand -- refuse alt=3D8: Bad operand -- refuse 0 Non input pseudo reload: reject++ alt=3D9: Bad operand -- refuse Choosing alt 6 in insn 502: (0) m (1) qn {*movqi_internal} Creating newreg=3D360 from oldreg=3D359, assigning class NO_REGS to r= 360 502: r360:QI=3D0 Inserting insn reload after: 503: r359:QI=3Dr360:QI 0 Non input pseudo reload: reject++ alt=3D0,overall=3D13,losers=3D2,rld_nregs=3D2 0 Non input pseudo reload: reject++ alt=3D1,overall=3D13,losers=3D2,rld_nregs=3D2 0 Non input pseudo reload: reject++ 1 Non pseudo reload: reject++ alt=3D2,overall=3D8,losers=3D1,rld_nregs=3D1 0 Non input pseudo reload: reject++ alt=3D3,overall=3D13,losers=3D2 -- refuse 0 Non input pseudo reload: reject++ alt=3D4,overall=3D13,losers=3D2 -- refuse Staticly defined alt reject+=3D6 0 Non input pseudo reload: reject++ alt=3D5,overall=3D13,losers=3D1 -- refuse 0 Non input pseudo reload: reject++ alt=3D6,overall=3D13,losers=3D2 -- refuse alt=3D7: Bad operand -- refuse alt=3D8: Bad operand -- refuse 0 Non input pseudo reload: reject++ alt=3D9: Bad operand -- refuse Choosing alt 2 in insn 503: (0) q (1) qm {*movqi_internal} Creating newreg=3D361 from oldreg=3D359, assigning class GENERAL_REGS= to r361 503: r361:QI=3Dr360:QI Inserting insn reload after: 504: r359:QI=3Dr361:QI 0 Non input pseudo reload: reject++ 1 Non pseudo reload: reject++ alt=3D0,overall=3D608,losers=3D1,rld_nregs=3D1 0 Non input pseudo reload: reject++ 1 Non pseudo reload: reject++ alt=3D1,overall=3D608,losers=3D1,rld_nregs=3D1 0 Non input pseudo reload: reject++ 1 Non pseudo reload: reject++ alt=3D2,overall=3D608,losers=3D1,rld_nregs=3D1 0 Non input pseudo reload: reject++ 1 Non pseudo reload: reject++ alt=3D3,overall=3D608,losers=3D1,rld_nregs=3D1 0 Non input pseudo reload: reject++ 1 Non pseudo reload: reject++ alt=3D4,overall=3D608,losers=3D1,rld_nregs=3D1 Staticly defined alt reject+=3D6 0 Non input pseudo reload: reject++ 1 Non pseudo reload: reject++ alt=3D5,overall=3D614,losers=3D1,rld_nregs=3D1 0 Non input pseudo reload: reject++ 1 Non pseudo reload: reject++ alt=3D6,overall=3D8,losers=3D1,rld_nregs=3D0 alt=3D7: Bad operand -- refuse alt=3D8: Bad operand -- refuse 0 Non input pseudo reload: reject++ alt=3D9: Bad operand -- refuse Choosing alt 6 in insn 504: (0) m (1) qn {*movqi_internal} Creating newreg=3D362 from oldreg=3D359, assigning class NO_REGS to r= 362 ... This is a new problem and does not look like target problem to me. Recategorizing back to RA problem. >>From gcc-bugs-return-474784-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Sun Jan 25 16:37:40 2015 Return-Path: Delivered-To: listarch-gcc-bugs@gcc.gnu.org Received: (qmail 10521 invoked by alias); 25 Jan 2015 16:37:32 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Delivered-To: mailing list gcc-bugs@gcc.gnu.org Received: (qmail 9480 invoked by uid 48); 25 Jan 2015 16:36:59 -0000 From: "antony at cosmologist dot info" To: gcc-bugs@gcc.gnu.org Subject: [Bug fortran/64787] New: Invalid code on sourced allocation of class(*) character string Date: Sun, 25 Jan 2015 16:37:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: fortran X-Bugzilla-Version: 5.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: antony at cosmologist dot info X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2015-01/txt/msg02778.txt.bz2 Content-length: 937 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64787 Bug ID: 64787 Summary: Invalid code on sourced allocation of class(*) character string Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: antony at cosmologist dot info On trunk module X contains subroutine AddCopy(C) class(*), intent(in) :: C class(*), pointer :: P allocate(P, source=C) end subroutine end module X program test use X call AddCopy('test string') end program test compiles, but when compiled with -O3 this always gives me a Seg Fault when run (and probably invalid code more generally). It may be related to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64692 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44672