[Bug middle-end/55030] [4.8 Regression]: gcc.c-torture/execute/builtins/memcpy-chk.c execution, -Os (et al)
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55030 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added CC||krebbel at gcc dot gnu.org --- Comment #7 from Andreas Krebbel krebbel at gcc dot gnu.org 2012-11-27 07:40:41 UTC --- (In reply to comment #5) Author: hp Date: Mon Nov 26 03:22:15 2012 New Revision: 193802 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=193802 Log: PR middle-end/55030 * builtins.c (expand_builtin_setjmp_receiver): Update comment regarding purpose of blockage. * emit-rtl.c [!HAVE_blockage] (gen_blockage): Similarly for the head comment. * rtlanal.c (volatile_insn_p): Ditto. * doc/md.texi (blockage): Update similarly. Change wording to require one of two forms, rather than implying a wider choice. * cse.c (cse_insn): Where checking for blocking insns, use volatile_insn_p instead of manual check for volatile ASM. * dse.c (scan_insn): Ditto. * cselib.c (cselib_process_insn): Ditto. This patch broke bootstrap on s390x. /home/andreas/git/gcc-head/libgcc/libgcc2.c: In function ‘__powitf2’: /home/andreas/git/gcc-head/libgcc/libgcc2.c:1779:1: internal compiler error: in vt_expand_var_loc_chain, at var-tracking.c:8020 } ^ 0x80b9c219 vt_expand_var_loc_chain /home/andreas/git/gcc-head/gcc/var-tracking.c:8020 0x80b9cf23 vt_expand_loc_callback /home/andreas/git/gcc-head/gcc/var-tracking.c:8216 0x80305c7d cselib_expand_value_rtx_1 /home/andreas/git/gcc-head/gcc/cselib.c:1683 0x80305e3b cselib_expand_value_rtx_1 /home/andreas/git/gcc-head/gcc/cselib.c:1721 0x8030568d cselib_expand_value_rtx_cb(rtx_def*, bitmap_head_def*, int, rtx_def* (*)(rtx_def*, bitmap_head _def*, int, void*), void*) /home/andreas/git/gcc-head/gcc/cselib.c:1530 0x80b9c39b vt_expand_var_loc_chain /home/andreas/git/gcc-head/gcc/var-tracking.c:8054 0x80b9cf23 vt_expand_loc_callback /home/andreas/git/gcc-head/gcc/var-tracking.c:8216 0x80305c7d cselib_expand_value_rtx_1 /home/andreas/git/gcc-head/gcc/cselib.c:1683 0x80305e3b cselib_expand_value_rtx_1 /home/andreas/git/gcc-head/gcc/cselib.c:1721 0x8030568d cselib_expand_value_rtx_cb(rtx_def*, bitmap_head_def*, int, rtx_def* (*)(rtx_def*, bitmap_head _def*, int, void*), void*) /home/andreas/git/gcc-head/gcc/cselib.c:1530 0x80b9c39b vt_expand_var_loc_chain /home/andreas/git/gcc-head/gcc/var-tracking.c:8054 0x80b9cf23 vt_expand_loc_callback /home/andreas/git/gcc-head/gcc/var-tracking.c:8216 0x80305c7d cselib_expand_value_rtx_1 /home/andreas/git/gcc-head/gcc/cselib.c:1683 0x8030568d cselib_expand_value_rtx_cb(rtx_def*, bitmap_head_def*, int, rtx_def* (*)(rtx_def*, bitmap_head_def*, int, void*), void*) /home/andreas/git/gcc-head/gcc/cselib.c:1530 0x80b9c39b vt_expand_var_loc_chain /home/andreas/git/gcc-head/gcc/var-tracking.c:8054 0x80b9d67d vt_expand_1pvar /home/andreas/git/gcc-head/gcc/var-tracking.c:8331 0x80b9d9c7 emit_note_insn_var_location /home/andreas/git/gcc-head/gcc/var-tracking.c:8385 0x80f1a4e3 htab_traverse_noresize /home/andreas/git/gcc-head/libiberty/hashtab.c:784 0x80f1a5bf htab_traverse /home/andreas/git/gcc-head/libiberty/hashtab.c:800 0x80b9f613 emit_notes_for_changes /home/andreas/git/gcc-head/gcc/var-tracking.c:8749 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See http://gcc.gnu.org/bugs.html for instructions. make[5]: *** [_powitf2.o] Error 1 make[5]: *** Waiting for unfinished jobs
[Bug bootstrap/55511] New: r193802 caused s390x bootstrap failure
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55511 Bug #: 55511 Summary: r193802 caused s390x bootstrap failure Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: major Priority: P3 Component: bootstrap AssignedTo: unassig...@gcc.gnu.org ReportedBy: kreb...@gcc.gnu.org Created attachment 28817 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28817 Reduced testcase cc1 t.c -quiet -g -O1 t.c: In function ‘__parityti2’: t.c:23:1: internal compiler error: in vt_expand_var_loc_chain, at var-tracking.c:8020 } ^ 0x80baa299 vt_expand_var_loc_chain /build/gcc-head/gcc/var-tracking.c:8020 0x80baafa5 vt_expand_loc_callback /build/gcc-head/gcc/var-tracking.c:8216 0x803166e9 cselib_expand_value_rtx_1 /build/gcc-head/gcc/cselib.c:1683 0x803168ad cselib_expand_value_rtx_1 /build/gcc-head/gcc/cselib.c:1721 0x803160f9 cselib_expand_value_rtx_cb(rtx_def*, bitmap_head_def*, int, rtx_def* (*)(rtx_def*, bitmap_head_def*, int, void*), void*) /build/gcc-head/gcc/cselib.c:1530 0x80baa41b vt_expand_var_loc_chain /build/gcc-head/gcc/var-tracking.c:8054 0x80baafa5 vt_expand_loc_callback /build/gcc-head/gcc/var-tracking.c:8216 0x803166e9 cselib_expand_value_rtx_1 /build/gcc-head/gcc/cselib.c:1683 0x803168ad cselib_expand_value_rtx_1 /build/gcc-head/gcc/cselib.c:1721 0x803160f9 cselib_expand_value_rtx_cb(rtx_def*, bitmap_head_def*, int, rtx_def* (*)(rtx_def*, bitmap_head_def*, int, void*), void*) /build/gcc-head/gcc/cselib.c:1530 0x80baa41b vt_expand_var_loc_chain /build/gcc-head/gcc/var-tracking.c:8054 0x80baafa5 vt_expand_loc_callback /build/gcc-head/gcc/var-tracking.c:8216 0x803166e9 cselib_expand_value_rtx_1 /build/gcc-head/gcc/cselib.c:1683 0x803160f9 cselib_expand_value_rtx_cb(rtx_def*, bitmap_head_def*, int, rtx_def* (*)(rtx_def*, bitmap_head_def*, int, void*), void*) /build/gcc-head/gcc/cselib.c:1530 0x80baa41b vt_expand_var_loc_chain /build/gcc-head/gcc/var-tracking.c:8054 0x80bab6fd vt_expand_1pvar /build/gcc-head/gcc/var-tracking.c:8331 0x80baba47 emit_note_insn_var_location /build/gcc-head/gcc/var-tracking.c:8385 0x80f288a3 htab_traverse_noresize /build/gcc-head/libiberty/hashtab.c:784 0x80f2897f htab_traverse /build/gcc-head/libiberty/hashtab.c:800 0x80bad69b emit_notes_for_changes /build/gcc-head/gcc/var-tracking.c:8749 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See http://gcc.gnu.org/bugs.html for instructions.
[Bug bootstrap/55511] [4.8 Regression] r193802 caused s390x bootstrap failure
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55511 --- Comment #3 from Andreas Krebbel krebbel at gcc dot gnu.org 2012-11-28 14:10:24 UTC --- (In reply to comment #2) (In reply to comment #1) Is this with the first build of libgcc? I.e. is it likely that I'll see this with just a cross-build? Also, can you please check whether the patch in http://gcc.gnu.org/ml/gcc-patches/2012-11/msg02188.html solves the problem, as it does for alpha-linux? I'll reply myself: apparently-yes, yes and yes; cross from x86_86-linux. And need to add -fpreprocessed to the cc1 command-line above or there's an unhelpful preprocessor error. So, once Jakub has committed that patch, please verify that this is sufficient (besides required). Thanks. Native build is finished as well. Jakub's patch fixes the issue.
[Bug rtl-optimization/55006] [4.8 Regression] aermod.f90 is miscompiled with '-m64 -O2 -funroll-loops' after revision 192526
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55006 --- Comment #9 from Andreas Krebbel krebbel at gcc dot gnu.org 2012-12-05 11:54:11 UTC --- Created attachment 28879 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28879 Reduced testcase
[Bug rtl-optimization/55006] [4.8 Regression] aermod.f90 is miscompiled with '-m64 -O2 -funroll-loops' after revision 192526
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55006 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added CC||krebbel at gcc dot gnu.org --- Comment #10 from Andreas Krebbel krebbel at gcc dot gnu.org 2012-12-05 11:56:03 UTC --- The attached testcase gets miscompiled starting with that revision. cc1 -fpreprocessed -quiet -O2 -march=z196 -funroll-loops t.c Perl_lex_start: .LFB0: stgrl%r2,PL_linestr tm13(%r2),128 stmg%r14,%r15,112(%r15) .LCFI0: lay%r15,-168(%r15) .LCFI1: jne.L6 l%r0,12-- broken (access to absolute address 12) lgrl%r2,PL_linestr .L2: tmlh%r0,4 jne.L1 la%r3,160(%r15) lghi%r4,2 brasl%r14,Perl_sv_2pv_flags .L1: lmg%r14,%r15,280(%r15) .LCFI2: br%r14 .L6: .LCFI3: brasl%r14,Perl_sv_2mortal stgrl%r2,PL_linestr l%r0,12(%r2) j.L2
[Bug rtl-optimization/55006] [4.8 Regression] aermod.f90 is miscompiled with '-m64 -O2 -funroll-loops' after revision 192526
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55006 --- Comment #11 from Andreas Krebbel krebbel at gcc dot gnu.org 2012-12-05 11:58:25 UTC --- Created attachment 28880 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28880 web output r192525
[Bug rtl-optimization/55006] [4.8 Regression] aermod.f90 is miscompiled with '-m64 -O2 -funroll-loops' after revision 192526
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55006 --- Comment #12 from Andreas Krebbel krebbel at gcc dot gnu.org 2012-12-05 11:58:53 UTC --- Created attachment 28881 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28881 web output r192526
[Bug rtl-optimization/55006] [4.8 Regression] aermod.f90 is miscompiled with '-m64 -O2 -funroll-loops' after revision 192526
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55006 --- Comment #15 from Andreas Krebbel krebbel at gcc dot gnu.org 2012-12-05 12:55:41 UTC --- (In reply to comment #13) (In reply to comment #10) The attached testcase gets miscompiled starting with that revision. And is not fixed after r194108? Just tested with r194219 - works again. Thanks!
[Bug rtl-optimization/55719] [4.8 Regression] ICE: Segmentation fault
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55719 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2012-12-17 Ever Confirmed|0 |1 --- Comment #3 from Andreas Krebbel krebbel at gcc dot gnu.org 2012-12-17 16:00:17 UTC --- Reghunt revealed r187064 as the culprit. This was the patch which enabled the sched-pressure scheduling by default on s390.
[Bug target/55718] [4.8 Regression] ICE in gen_reg_rtx, at emit-rtl.c:866
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55718 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2012-12-18 AssignedTo|unassigned at gcc dot |krebbel at gcc dot gnu.org |gnu.org | Ever Confirmed|0 |1 --- Comment #3 from Andreas Krebbel krebbel at gcc dot gnu.org 2012-12-18 11:30:06 UTC --- Created attachment 28993 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=28993 Experimental fix Starting with http://gcc.gnu.org/ml/gcc-patches/2012-09/msg00088.html UNSPEC GOTENTs are accepted as legitimate address what leads to this error. For the strlen implementation we subtract the result from the source pointer. In the testcase the subtraction is done in a mode smaller than pointer size (SImode). The source pointer is the address of a global symbol in the GOT. Resolving the subreg on the address reload generates: (const:DI (plus:DI (unspec:DI [ (symbol_ref:DI (temp) [flags 0x440] var_decl 0x200060095f0 temp) ] UNSPEC_GOTENT) (const_int 4 [0x4]))) Instead of just letting it pass legitmize_pic_address tries to generate code for the add what needs an additional register. The attached patch fixes this.
[Bug rtl-optimization/55717] [4.8 Regression] ICE in form_sum, at reload.c:5400
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55717 --- Comment #7 from Andreas Krebbel krebbel at gcc dot gnu.org 2012-12-18 11:35:33 UTC --- (In reply to comment #5) Created attachment 28987 [details] gcc48-pr55717.patch Untested fix. Instead of returning very likely bogus value x this patch returns NULL and let the callers deal with that as error (so they don't try that simplification, instead try some other or just punt at simplifying). Thanks. I've tested your patch on s390 and s390x. No regressions.
[Bug regression/55754] FAIL: gcc.target/arm/unsigned-extend-2.c scan-assembler ands
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55754 --- Comment #2 from Andreas Krebbel krebbel at gcc dot gnu.org 2012-12-20 15:20:17 UTC --- Author: krebbel Date: Thu Dec 20 15:20:06 2012 New Revision: 194636 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=194636 Log: 2012-12-20 Andreas Krebbel andreas.kreb...@de.ibm.com PR target/55754 * config/arm/arm.c (arm_canonicalize_comparison): Remove op0_preserve_value check for zero_extend to and transformation. Modified: trunk/gcc/ChangeLog trunk/gcc/config/arm/arm.c
[Bug rtl-optimization/55719] [4.8 Regression] ICE: Segmentation fault
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55719 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Status|NEW |ASSIGNED AssignedTo|unassigned at gcc dot |krebbel at gcc dot gnu.org |gnu.org | --- Comment #6 from Andreas Krebbel krebbel at gcc dot gnu.org 2013-01-10 07:41:46 UTC --- (In reply to comment #5) I'm out of my depth here, but perhaps someone can give me a hint on how to debug this further. As alluded to earlier, this ICE only happens with sched-pressure scheduling. The actual ICE happens in find_reloads_address_part(), where we have are analyzing X=: (const:DI (plus:DI (symbol_ref:DI (glob_b)) (const_int 3 [0x3]))) prefer_reload_class() returns NO_REGS, because legitimate_reload_constant_p() returns false for the X above. So when we call force_const_mem() in find_reloads_address_part... if (CONSTANT_P (x) (!targetm.legitimate_constant_p (mode, x) || targetm.preferred_reload_class (x, rclass) == NO_REGS)) { x = force_const_mem (mode, x); -- HERE force_const_mem() returns NULL because s390_cannot_force_const_mem() returns true for the SYMBOL_REF in -fPIC mode. Bottom line-- force_const_mem() returns NULL for a (const (plus SYMBOL_REF CONST)) with -fPIC, and then we dereference this NULL. Is the RTL correct? Any hints? I'm already testing a patch. We have an instruction (larl) which is able to handle pc-relative symbol references. But it only allows even addends. symref + odd addend is handled via secondary reload. I think it is invalid that preferred reload class returns NO_REGS here.
[Bug rtl-optimization/55719] [4.8 Regression] ICE: Segmentation fault
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55719 --- Comment #7 from Andreas Krebbel krebbel at gcc dot gnu.org 2013-01-10 07:55:32 UTC --- Created attachment 29137 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=29137 Experimental fix This patch fixes the problem for me. I will use Aldys testcase when comitting since he reduced it a bit further.
[Bug target/55718] [4.8 Regression] ICE in gen_reg_rtx, at emit-rtl.c:866
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55718 --- Comment #4 from Andreas Krebbel krebbel at gcc dot gnu.org 2013-01-10 08:15:23 UTC --- Author: krebbel Date: Thu Jan 10 08:15:07 2013 New Revision: 195078 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=195078 Log: 2013-01-10 Andreas Krebbel andreas.kreb...@de.ibm.com PR target/55718 * config/s390/s390.c (s390_symref_operand_p) (s390_loadrelative_operand_p): Merge the two functions. (s390_check_qrst_address, print_operand_address): Add parameters to s390_loadrelative_operand_p invokation. (s390_check_symref_alignment): Use s390_loadrelative_operand_p. (s390_reload_larl_operand, s390_secondary_reload): Use s390_loadrelative_operand_p instead of s390_symref_operand_p. (legitimize_pic_address): Handle @GOTENT and @PLT + addend. Added: trunk/gcc/testsuite/gcc.target/s390/pr55718.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/s390/s390.c
[Bug target/55718] [4.8 Regression] ICE in gen_reg_rtx, at emit-rtl.c:866
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55718 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #5 from Andreas Krebbel krebbel at gcc dot gnu.org 2013-01-10 08:21:30 UTC --- Fixed per commit above.
[Bug rtl-optimization/55719] [4.8 Regression] ICE: Segmentation fault
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55719 --- Comment #8 from Andreas Krebbel krebbel at gcc dot gnu.org 2013-01-11 16:43:56 UTC --- Author: krebbel Date: Fri Jan 11 16:43:49 2013 New Revision: 195109 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=195109 Log: 2013-01-11 Andreas Krebbel andreas.kreb...@de.ibm.com PR target/55719 * config/s390/s390.c (s390_preferred_reload_class): Do not return NO_REGS for larl operands. (s390_reload_larl_operand): Use s390_load_address instead of emit_move_insn. 2013-01-11 Andreas Krebbel andreas.kreb...@de.ibm.com PR target/55719 * gcc.target/s390/pr55719.c: New testcase. Modified: trunk/gcc/ChangeLog trunk/gcc/config/s390/s390.c trunk/gcc/testsuite/ChangeLog
[Bug rtl-optimization/55719] [4.8 Regression] ICE: Segmentation fault
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55719 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED --- Comment #9 from Andreas Krebbel krebbel at gcc dot gnu.org 2013-01-11 16:45:15 UTC --- Fixed with commit above.
[Bug bootstrap/58666] New: make install after make bootstrap-lean fails starting with r202895
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58666 Bug ID: 58666 Summary: make install after make bootstrap-lean fails starting with r202895 Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: bootstrap Assignee: unassigned at gcc dot gnu.org Reporter: krebbel at gcc dot gnu.org After bootstrap-lean the installation process tries to rebuild several files with the host GCC and -Werror which fails: /build/gcc-head/gcc/langhooks.c: In function ‘void lhd_print_error_function(diagnostic_context*, const char*, diagnostic_info*)’: /build/gcc-head/gcc/langhooks.c:457:41: error: unknown conversion type character ‘r’ in format [-Werror=format] /build/gcc-head/gcc/langhooks.c:457:41: error: format ‘%d’ expects argument of type ‘int’, but argument 5 has type ‘const char*’ [-Werror=format] /build/gcc-head/gcc/langhooks.c:457:41: error: unknown conversion type character ‘R’ in format [-Werror=format] /build/gcc-head/gcc/langhooks.c:457:41: error: too many arguments for format [-Werror=format-extra-args] /build/gcc-head/gcc/langhooks.c:462:31: error: unknown conversion type character ‘r’ in format [-Werror=format] /build/gcc-head/gcc/langhooks.c:462:31: error: format ‘%d’ expects argument of type ‘int’, but argument 5 has type ‘const char*’ [-Werror=format] /build/gcc-head/gcc/langhooks.c:462:31: error: unknown conversion type character ‘R’ in format [-Werror=format] /build/gcc-head/gcc/langhooks.c:462:31: error: too many arguments for format [-Werror=format-extra-args] At global scope: cc1plus: error: unrecognized command line option -Wno-narrowing [-Werror] cc1plus: all warnings being treated as errors The output comes from an s390x build but similiar errors can be observed on x86-64: cc1plus: warnings being treated as errors /home/andreas/clean/gcc-head/gcc/attribs.c: In function ‘tree_node* decl_attributes(tree_node**, tree_node*, int)’: /home/andreas/clean/gcc-head/gcc/attribs.c:428: error: unknown conversion type character ‘E’ in format /home/andreas/clean/gcc-head/gcc/attribs.c:428: error: too many arguments for format /home/andreas/clean/gcc-head/gcc/attribs.c:432: error: unknown conversion type character ‘E’ in format /home/andreas/clean/gcc-head/gcc/attribs.c:432: error: unknown conversion type character ‘E’ in format /home/andreas/clean/gcc-head/gcc/attribs.c:432: error: too many arguments for format /home/andreas/clean/gcc-head/gcc/attribs.c:441: error: unknown conversion type character ‘E’ in format /home/andreas/clean/gcc-head/gcc/attribs.c:441: error: too many arguments for format /home/andreas/clean/gcc-head/gcc/attribs.c:473: error: unknown conversion type character ‘E’ in format /home/andreas/clean/gcc-head/gcc/attribs.c:473: error: too many arguments for format /home/andreas/clean/gcc-head/gcc/attribs.c:525: error: unknown conversion type character ‘E’ in format /home/andreas/clean/gcc-head/gcc/attribs.c:525: error: too many arguments for format In file included from /home/andreas/clean/gcc-head/gcc/tree-core.h:27, from /home/andreas/clean/gcc-head/gcc/tree.h:23, from /home/andreas/clean/gcc-head/gcc/attribs.c:24: /home/andreas/clean/gcc-head/gcc/vec.h: In static member function ‘static size_t vecT, A, vl_embed::embedded_size(unsigned int) [with T = scoped_attributes, A = va_heap]’: /home/andreas/clean/gcc-head/gcc/vec.h:298: instantiated from ‘static void va_heap::reserve(vecT, va_heap, vl_embed*, unsigned int, bool) [with T = scoped_attributes]’ /home/andreas/clean/gcc-head/gcc/vec.h:1480: instantiated from ‘bool vecT, A, vl_ptr::reserve(unsigned int, bool) [with T = scoped_attributes, A = va_heap]’ /home/andreas/clean/gcc-head/gcc/vec.h:1575: instantiated from ‘T* vecT, A, vl_ptr::safe_push(const T) [with T = scoped_attributes, A = va_heap]’ /home/andreas/clean/gcc-head/gcc/attribs.c:143: instantiated from here /home/andreas/clean/gcc-head/gcc/vec.h:1103: error: invalid access to non-static data member ‘vecscoped_attributes, va_heap, vl_embed::m_vecdata’ of NULL object /home/andreas/clean/gcc-head/gcc/vec.h:1103: error: (perhaps the ‘offsetof’ macro was used incorrectly) At global scope: cc1plus: error: unrecognized command line option -Wno-narrowing make[2]: *** [attribs.o] Error 1 make[2]: Leaving directory `/home/andreas/clean/gcc-head-build/gcc' make[1]: *** [install-gcc] Error 2 make[1]: Leaving directory `/home/andreas/clean/gcc-head-build' make: *** [install] Error 2
[Bug target/57377] compiler cannot be built with RTL checking
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57377 --- Comment #2 from Andreas Krebbel krebbel at gcc dot gnu.org --- Author: krebbel Date: Thu Oct 10 12:01:23 2013 New Revision: 203353 URL: http://gcc.gnu.org/viewcvs?rev=203353root=gccview=rev Log: 2013-10-10 Andreas Krebbel andreas.kreb...@de.ibm.com PR target/57377 * gensupport.c (gen_mnemonic_attr): Handle (set (attr x) y) and (set_attr_alternative x ...) when searching for user defined mnemonic attribute. Modified: trunk/gcc/ChangeLog trunk/gcc/gensupport.c
[Bug rtl-optimization/59340] New: LRA enable-checking bootstrap failure since r205136
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59340 Bug ID: 59340 Summary: LRA enable-checking bootstrap failure since r205136 Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: krebbel at gcc dot gnu.org The following code has been added to s390_decompose_address for the LRA enablement to prevent strict displacement checking for addresses including eliminable registers. Only during LRA execution the displacements are expected to be valid. 199754 vmakarov if (lra_in_progress 199754 vmakarov || (base != arg_pointer_rtx 199754 vmakarov indx != arg_pointer_rtx 199754 vmakarov base != return_address_pointer_rtx 199754 vmakarov indx != return_address_pointer_rtx 199754 vmakarov base != frame_pointer_rtx 199754 vmakarov indx != frame_pointer_rtx 199754 vmakarov base != virtual_stack_vars_rtx 199754 vmakarov indx != virtual_stack_vars_rtx)) However, with: Author: law Date: Wed Nov 20 18:17:49 2013 New Revision: 205136 URL: http://gcc.gnu.org/viewcvs?rev=205136root=gccview=rev Log: * lra.c (lra): Set lra_in_progress before check_rtl call. * recog.c (insn_invalid_p): Add !lra_in_progress to prevent adding clobber regs when LRA is running Modified: trunk/gcc/ChangeLog trunk/gcc/lra.c trunk/gcc/recog.c the lra_in_progress = 1; statement has been moved before the initial LRA check_rtl invokation so s390_decompose_address now expects the displacements to be valid already what obviously is not the case. This leads to a bootstrap failure: /home/andreas/patched/gcc-head/libgcc/libgcc2.c: In function ‘__mulsc3’: /home/andreas/patched/gcc-head/libgcc/libgcc2.c:1932:1: error: insn does not satisfy its constraints: } ^ (insn 21 26 23 2 (set (mem/c:SF (plus:DI (reg/f:DI 34 %fp) (const_int -16 [0xfff0])) [2 ac+0 S4 A64]) (reg:SF 108 [ D.5596 ])) /home/andreas/patched/gcc-head/libgcc/libgcc2.c:1874 88 {movsf} (expr_list:REG_DEAD (reg:SF 108 [ D.5596 ]) (nil))) /home/andreas/patched/gcc-head/libgcc/libgcc2.c:1932:1: internal compiler error: in check_rtl, at lra.c :2043 It can easily be reproduced with: cc1 -O0 t.c t.c: void foo (int a) {}
[Bug rtl-optimization/59340] [4.9 Regression] LRA enable-checking bootstrap failure since r205136
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59340 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED --- Comment #5 from Andreas Krebbel krebbel at gcc dot gnu.org --- Bootstrap works again with r205541. Thanks!
[Bug target/54746] config/s390/s390.c:1583: possible missing break in switch ?
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54746 --- Comment #2 from Andreas Krebbel krebbel at gcc dot gnu.org 2012-10-01 07:23:21 UTC --- Author: krebbel Date: Mon Oct 1 07:23:12 2012 New Revision: 191885 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=191885 Log: 2012-10-01 Andreas Krebbel andreas.kreb...@de.ibm.com PR target/54746 * config/s390/s390.c (s390_option_override): Add missing break. Modified: trunk/gcc/ChangeLog trunk/gcc/config/s390/s390.c
[Bug target/54746] config/s390/s390.c:1583: possible missing break in switch ?
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54746 --- Comment #3 from Andreas Krebbel krebbel at gcc dot gnu.org 2012-10-01 07:33:17 UTC --- (In reply to comment #0) break; case PROCESSOR_2097_Z10: s390_cost = z10_cost; case PROCESSOR_2817_Z196: s390_cost = z196_cost; Looks like a missing break to me. The wrong cost gets picked up. You are right. I'll commit a patch to mainline and 4.7 branch. Thanks!
[Bug target/54746] config/s390/s390.c:1583: possible missing break in switch ?
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54746 --- Comment #4 from Andreas Krebbel krebbel at gcc dot gnu.org 2012-10-01 07:51:26 UTC --- Author: krebbel Date: Mon Oct 1 07:51:20 2012 New Revision: 191888 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=191888 Log: 2012-10-01 Andreas Krebbel andreas.kreb...@de.ibm.com PR target/54746 * config/s390/s390.c (s390_option_override): Add missing break. Modified: branches/gcc-4_7-branch/gcc/ChangeLog branches/gcc-4_7-branch/gcc/config/s390/s390.c
[Bug rtl-optimization/54016] loop optimizer: no branch on count on s390 anymore since revision 185913
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54016 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED Resolution||FIXED --- Comment #5 from Andreas Krebbel krebbel at gcc dot gnu.org 2013-03-07 11:24:14 UTC --- Fixed with the patch for BZ56181.
[Bug rtl-optimization/54016] loop optimizer: no branch on count on s390 anymore since revision 185913
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54016 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Status|RESOLVED|CLOSED --- Comment #6 from Andreas Krebbel krebbel at gcc dot gnu.org 2013-03-07 11:26:26 UTC --- Closed per comment above.
[Bug bootstrap/56689] New: internal compiler error: in get_loop_body, at cfgloop.c:841
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56689 Bug #: 56689 Summary: internal compiler error: in get_loop_body, at cfgloop.c:841 Classification: Unclassified Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: major Priority: P3 Component: bootstrap AssignedTo: unassig...@gcc.gnu.org ReportedBy: kreb...@gcc.gnu.org gcc/reginfo.c: In function ‘void fix_register(const char*, int, int)’: gcc/reginfo.c:680:1: internal compiler error: in get_loop_body, at cfgloop.c:841 fix_register (const char *name, int fixed, int call_used) ^ Reghunt indicates that it is related to r196792 +2013-03-19 Richard Biener rguent...@suse.de + + PR tree-optimization/56273 + * gcc.dg/tree-ssa/vrp47.c: Adjust. + * c-c++-common/uninit-17.c: Likewise.
[Bug bootstrap/56689] internal compiler error: in get_loop_body, at cfgloop.c:841
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56689 --- Comment #2 from Andreas Krebbel krebbel at gcc dot gnu.org 2013-03-22 14:56:43 UTC --- Created attachment 29707 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=29707 Reduced testcase cc1plus -fpreprocessed -quiet -O2 t.cc t.cc: In function ‘void fix_register(const char*, int, int)’: t.cc:33:1: error: size of loop 1 should be 7, not 8 fix_register (const char *name, int fixed, int call_used) ^ t.cc:33:1: internal compiler error: in verify_loop_structure, at cfgloop.c:1640 0x8054a083 verify_loop_structure() /home/andreas/clean/gcc-head/gcc/cfgloop.c:1640 0x808a8b43 loop_optimizer_init(unsigned int) /home/andreas/clean/gcc-head/gcc/loop-init.c:100 0x80c0ddfd perform_tree_ssa_dce /home/andreas/clean/gcc-head/gcc/tree-ssa-dce.c:1554 0x80c0e12f tree_ssa_cd_dce /home/andreas/clean/gcc-head/gcc/tree-ssa-dce.c:1637 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See http://gcc.gnu.org/bugs.html for instructions.
[Bug bootstrap/56689] internal compiler error: in get_loop_body, at cfgloop.c:841
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56689 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Attachment #29707|0 |1 is obsolete|| --- Comment #3 from Andreas Krebbel krebbel at gcc dot gnu.org 2013-03-25 08:01:00 UTC --- Created attachment 29717 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=29717 Manually reduced testcase cc1 -O2 t.c t.c: In function ‘fix_register’: t.c:6:1: error: size of loop 1 should be 7, not 8 fix_register (const char *name, int fixed, int call_used, int nregs) ^ t.c:6:1: internal compiler error: in verify_loop_structure, at cfgloop.c:1640 0x80227273 verify_loop_structure() /home/andreas/clean/gcc-head/gcc/cfgloop.c:1640 0x8076488f perform_tree_ssa_dce /home/andreas/clean/gcc-head/gcc/tree-ssa-dce.c:1554 0x80764be1 tree_ssa_cd_dce /home/andreas/clean/gcc-head/gcc/tree-ssa-dce.c:1637 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See http://gcc.gnu.org/bugs.html for instructions.
[Bug bootstrap/56689] internal compiler error: in get_loop_body, at cfgloop.c:841
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56689 --- Comment #4 from Andreas Krebbel krebbel at gcc dot gnu.org 2013-03-25 09:14:52 UTC --- phicprop2: bb 9: switch (fixed_11(D)) default: L15, case 0: L6, case 1: L12 vrp2: bb 9: switch (fixed_13(D)) default: L15, case 1: L12 L6: (bb 10) switch (call_used_12(D)) default: L8, case 1: L7 VRP optimizes the case 0: L6 away. So there is no edge between bb9 and bb10 anymore. Due to that dfs_enumerate_from does not consider bb9 to be part of the loop anymore. It counts 7 instead of 8 bbs for the loop due to this.
[Bug bootstrap/56689] [4.9 Regression] internal compiler error: in get_loop_body, at cfgloop.c:841
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56689 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Status|RESOLVED|CLOSED --- Comment #7 from Andreas Krebbel krebbel at gcc dot gnu.org 2013-03-26 15:08:33 UTC --- Patch fixes the problem for me. Thanks!
[Bug libffi/56033] FAIL: libffi.call/cls_struct_va1.c on powerpc-*-* and sparc-sun-solaris2* with -m64
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56033 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added CC||krebbel at gcc dot gnu.org --- Comment #5 from Andreas Krebbel krebbel at gcc dot gnu.org 2013-04-08 11:19:16 UTC --- Confirmed for s390x. Looks like an endianess issue to me. In cls_struct_va1.c the void pointer to the return value is cast to an int pointer before writing to it: static void test_fn (ffi_cif* cif __UNUSED__, void* resp, void** args, void* userdata __UNUSED__) { ... * (int*) resp = 42; } But the pointer later on is expected to point to a register size value. There are also testcases which do it differently (e.g. closure_fn0.c). They cast the pointer to the return value to ffi_arg* before accessing it. ffi_arg is defined to be a register size type. From the documentation I cannot tell which one is supposed to be correct. static void closure_test_fn0(ffi_cif* cif __UNUSED__, void* resp, void** args, void* userdata) { *(ffi_arg*)resp = ... } Btw. for both examples the return type is defined as ffi_type_sint in ffi_prep_cif
[Bug libffi/56033] FAIL: libffi.call/cls_struct_va1.c on powerpc-*-* and sparc-sun-solaris2* with -m64
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56033 --- Comment #6 from Andreas Krebbel krebbel at gcc dot gnu.org 2013-04-08 11:24:22 UTC --- Just noticed the example in libffi documentation which suggests that casting to the return type pointer should work: /* Acts like puts with the file given at time of enclosure. */ void puts_binding(ffi_cif *cif, unsigned int *ret, void* args[], FILE *stream) @{ *ret = fputs(*(char **)args[0], stream); @}
[Bug middle-end/56978] New: memset-chk.c failure since r197671
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56978 Bug #: 56978 Summary: memset-chk.c failure since r197671 Classification: Unclassified Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassig...@gcc.gnu.org ReportedBy: kreb...@gcc.gnu.org /home/andreas/clean/gcc-head-build/gcc/xgcc -B/home/andreas/clean/gcc-head-build/gcc/ /home/andreas/clean/gcc-head/gcc/testsuite/gcc.c-torture/execute/builtins/memset-chk.c /home/andreas/clean/gcc-head/gcc/testsuite/gcc.c-torture/execute/builtins/memset-chk-lib.c /home/andreas/clean/gcc-head/gcc/testsuite/gcc.c-torture/execute/builtins/lib/main.c -fno-diagnostics-show-caret -w -O3 -fomit-frame-pointer -funroll-loops -fno-tree-loop-distribute-patterns -lm -o /home/andreas/clean/gcc-head-build/gcc/testsuite/gcc5/memset-chk.x /home/andreas/clean/gcc-head/gcc/testsuite/gcc.c-torture/execute/builtins/memset-chk.c: In function ‘test5’: /home/andreas/clean/gcc-head/gcc/testsuite/gcc.c-torture/execute/builtins/memset-chk.c:552:1: internal compiler error: in emit_move_insn_1, at expr.c:3428 0x802f712b emit_move_insn_1(rtx_def*, rtx_def*) /home/andreas/clean/gcc-head/gcc/expr.c:3428 0x802f71c5 emit_move_insn(rtx_def*, rtx_def*) /home/andreas/clean/gcc-head/gcc/expr.c:3526 0x802d68bb force_reg /home/andreas/clean/gcc-head/gcc/explow.c:676 0x802f8053 convert_move(rtx_def*, rtx_def*, int) /home/andreas/clean/gcc-head/gcc/expr.c:590 0x802f87b9 convert_modes(machine_mode, machine_mode, rtx_def*, int) /home/andreas/clean/gcc-head/gcc/expr.c:781 0x804bd919 expand_binop_directly /home/andreas/clean/gcc-head/gcc/optabs.c:1427 0x804bb57f expand_binop(machine_mode, optab_tag, rtx_def*, rtx_def*, rtx_def*, int, optab_methods) /home/andreas/clean/gcc-head/gcc/optabs.c:1543 0x804bd70d expand_simple_binop(machine_mode, rtx_code, rtx_def*, rtx_def*, rtx_def*, int, optab_methods) /home/andreas/clean/gcc-head/gcc/optabs.c:1291 0x802fb645 force_operand(rtx_def*, rtx_def*) /home/andreas/clean/gcc-head/gcc/expr.c:7054 0x8094d3c3 doloop_modify /home/andreas/clean/gcc-head/gcc/loop-doloop.c:480 0x8094d3c3 doloop_optimize /home/andreas/clean/gcc-head/gcc/loop-doloop.c:750 0x8094d3c3 doloop_optimize_loops() /home/andreas/clean/gcc-head/gcc/loop-doloop.c:764 0x804549d7 rtl_doloop /home/andreas/clean/gcc-head/gcc/loop-init.c:543 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See http://gcc.gnu.org/bugs.html for instructions. Reghunt indicates that the error has been introduced with: 2013-04-10 Richard Biener rguent...@suse.de * passes.c (execute_todo): Do not call ggc_collect conditional here. (execute_one_ipa_transform_pass): But unconditionally here. (execute_one_pass): And here. (init_optimization_passes): Remove reload pass. * tree-pass.h (TODO_ggc_collect): Remove. (pass_reload): Likewise. * ira.c (do_reload): Merge into ... (ira): ... this. (rest_of_handle_reload): Remove. (pass_reload): Likewise. * config/i386/i386.c (ix86_option_override): Refer to ira instead of reload for vzeroupper pass placement. * everywhere: Remove TODO_ggc_collect from todo_flags_start and todo_flags_finish of all passes. * g++.dg/pr55604.C: Use -fdump-rtl-ira.
[Bug middle-end/56978] memset-chk.c failure since r197671
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56978 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||DUPLICATE --- Comment #2 from Andreas Krebbel krebbel at gcc dot gnu.org 2013-04-16 13:40:27 UTC --- The patch from PR56921 fixes the issue on S/390. Thanks! *** This bug has been marked as a duplicate of bug 56921 ***
[Bug rtl-optimization/56921] [4.9 Regression] ICE in rtx_cost called by doloop_optimize_loops for PPC
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56921 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added CC||krebbel at gcc dot gnu.org --- Comment #14 from Andreas Krebbel krebbel at gcc dot gnu.org 2013-04-16 13:40:27 UTC --- *** Bug 56978 has been marked as a duplicate of this bug. ***
[Bug rtl-optimization/57067] New: Missing control flow edges for setjmp/longjmp
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57067 Bug #: 57067 Summary: Missing control flow edges for setjmp/longjmp Classification: Unclassified Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: kreb...@gcc.gnu.org The fix for PR56982 adds abnormal control flow edges from function calls to a setjmp call in the same function. Unfortunately these edges do not survive until RTL so that the RTL passes might still do the wrong thing. The edges are removed in gimple_expand_cfg: /* At the moment not all abnormal edges match the RTL representation. It is safe to remove them here as find_many_sub_basic_blocks will rediscover them. In the future we should get this fixed properly. */ if ((e-flags EDGE_ABNORMAL) !(e-flags EDGE_SIBCALL)) remove_edge (e); else ei_next (ei); find_many_sub_basic_blocks needs a fix to add them back as well. I don't have a testcase for GCC head. The testcase I have fails only with GCC 4.4: http://gcc.gnu.org/ml/gcc/2013-04/msg00237.html In this case the RTL scheduler pass generates broken code due to the missing control flow info. I think this could potentially happen with GCC head as well.
[Bug rtl-optimization/57067] Missing control flow edges for setjmp/longjmp
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57067 --- Comment #2 from Andreas Krebbel krebbel at gcc dot gnu.org 2013-04-25 14:46:09 UTC --- (In reply to comment #1) I suppose more selectively removing edges would be best. Eventually this is done to cater for expansions of builtin calls to non-calls? Then maybe those edges should be removed later, _after_ builtin expansion and find_many_sub_basic_blocks? Wouldn't it be better to keep all the edges and fix the fallout from the RTL passes? Do you remember any example where this currently fails? I've verified with GCC 4.4 that dropping the edge removal code from cfgexpand.c together with a backport of the PR56982 patch fixes the actual problem.
[Bug rtl-optimization/53141] [4.8 Regression] gcc.target/i386/bmi2-mulx32-[12]a.c
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53141 --- Comment #1 from Andreas Krebbel krebbel at gcc dot gnu.org 2012-04-27 14:32:23 UTC --- That's because reload now will try with swapped operands before going to the next alternative. So now the first alternative will be used instead of the second. This matches the behavior documented in the GCC internal manual: http://gcc.gnu.org/onlinedocs/gccint/Multi_002dAlternative.html If two alternatives need the same amount of copying, the one that comes first is chosen. So if the second alternative is preferable then the back-end pattern needs to be adjusted. ira: (insn 9 4 14 2 (parallel [ (set (reg:DI 65 [ res ]) (mult:DI (zero_extend:DI (reg/v:SI 64 [ b ])) (zero_extend:DI (reg/v:SI 63 [ a ] (clobber (reg:CC 17 flags)) ]) bmi2-mulx32-1.c:24 336 {*umulsidi3_1} (expr_list:REG_DEAD (reg/v:SI 64 [ b ]) (expr_list:REG_DEAD (reg/v:SI 63 [ a ]) (expr_list:REG_UNUSED (reg:CC 17 flags) (nil) reload: (insn 9 4 17 2 (parallel [ (set (reg:DI 0 ax [orig:65 res ] [65]) (mult:DI (zero_extend:DI (reg/v:SI 0 ax [orig:63 a ] [63])) (zero_extend:DI (reg/v:SI 1 dx [orig:64 b ] [64] (clobber (reg:CC 17 flags)) ]) bmi2-mulx32-1.c:24 336 {*umulsidi3_1} (nil)) back-end pattern: (define_insn *umulmodedwi3_1 [(set (match_operand:DWI 0 register_operand =A,r) (mult:DWI (zero_extend:DWI (match_operand:DWIH 1 nonimmediate_operand %0,d)) (zero_extend:DWI (match_operand:DWIH 2 nonimmediate_operand rm,rm (clobber (reg:CC FLAGS_REG))]
[Bug rtl-optimization/53141] [4.8 Regression] gcc.target/i386/bmi2-mulx32-[12]a.c
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53141 --- Comment #2 from Andreas Krebbel krebbel at gcc dot gnu.org 2012-04-27 14:47:15 UTC --- Created attachment 27252 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=27252 Patch proposal This patch should bring back the old behavior.
[Bug bootstrap/53280] New: s390 bootstrap failure since r186977
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53280 Bug #: 53280 Summary: s390 bootstrap failure since r186977 Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: bootstrap AssignedTo: unassig...@gcc.gnu.org ReportedBy: kreb...@gcc.gnu.org SVN revision 186977 seem to have caused: In file included from /build/regtest/gcc-head-build/s390-ibm-linux-gnu/libstdc++-v3/include/bits/stl_algo.h:68:0, from /build/regtest/gcc-head-build/s390-ibm-linux-gnu/libstdc++-v3/include/algorithm:63, from /build/regtest/gcc-head-build/s390-ibm-linux-gnu/libstdc++-v3/include/regex:38, from /build/regtest/gcc-head/libstdc++-v3/src/c++11/regex.cc:25: /build/regtest/gcc-head-build/s390-ibm-linux-gnu/libstdc++-v3/include/functional: In member function ‘std::__regex::_StateIdT std::__regex::_Nfa::_M_insert_accept()’: /build/regtest/gcc-head-build/s390-ibm-linux-gnu/libstdc++-v3/include/functional:2057:63: internal compiler error: tree check: expected tree_vec, have error_mark in comp_template_args_with_info, at cp/pt.c:7038 using _Requires = typename enable_if_Cond::value, _Tp::type; ^ Please submit a full bug report, with preprocessed source if appropriate. See http://gcc.gnu.org/bugs.html for instructions.
[Bug bootstrap/53681] New: s390 bootstrap failure since 187965
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53681 Bug #: 53681 Summary: s390 bootstrap failure since 187965 Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: major Priority: P3 Component: bootstrap AssignedTo: unassig...@gcc.gnu.org ReportedBy: kreb...@gcc.gnu.org int __gcov_execle (const char *path, char *arg, ...) { __builtin_va_list ap, aq; while (__builtin_va_arg (ap, char *)) length++; } cc1 -fpreprocessed t.c -quiet t.c: In function ‘__gcov_execle’: t.c:6:7: error: ‘length’ undeclared (first use in this function) length++; ^ t.c:6:7: note: each undeclared identifier is reported only once for each function it appears in t.c:5:32: internal compiler error: Segmentation fault while (__builtin_va_arg (ap, char *)) ^ Please submit a full bug report, with preprocessed source if appropriate. See http://gcc.gnu.org/bugs.html for instructions. (gdb) r Starting program: /home/andreas/patched/gcc-head-build/gcc/cc1 -fpreprocessed t.c -quiet t.c: In function ‘__gcov_execle’: t.c:6:7: error: ‘length’ undeclared (first use in this function) length++; ^ t.c:6:7: note: each undeclared identifier is reported only once for each function it appears in Program received signal SIGSEGV, Segmentation fault. 0x82618f00 in mark_sym_for_renaming (sym=0x3fff7f3a320) at /home/andreas/patched/gcc-head/gcc/tree-into-ssa.c:2997 2997 bitmap_set_bit (SYMS_TO_RENAME (cfun), DECL_UID (sym)); (gdb) bt #0 0x82618f00 in mark_sym_for_renaming (sym=0x3fff7f3a320) at /home/andreas/patched/gcc-head/gcc/tree-into-ssa.c:2997 #1 0x83c03f98 in s390_gimplify_va_arg (valist=0x3fff8026300, type=0x3fff7f549d8, pre_p=0x3ffd7d0, post_p=0x3ffa698) at /home/andreas/patched/gcc-head/gcc/config/s390/s390.c:9047 #2 0x8057b192 in gimplify_va_arg_expr (expr_p=0x3fff8026290, pre_p=0x3ffd7d0, post_p=0x3ffa698) at /home/andreas/patched/gcc-head/gcc/builtins.c:4509 #3 0x81256160 in gimplify_expr (expr_p=0x3fff8026290, pre_p=0x3ffd7d0, post_p=0x3ffa698, gimple_test_f=0x8109c684 is_gimple_val, fallback=1) at /home/andreas/patched/gcc-head/gcc/gimplify.c:7178 #4 0x8125b52a in gimplify_expr (expr_p=0x3fff802a020, pre_p=0x3ffd7d0, post_p=0x3ffa698, gimple_test_f=0x8109aca8 is_gimple_condexpr, fallback=1) at /home/andreas/patched/gcc-head/gcc/gimplify.c:7743 #5 0x81233282 in gimplify_cond_expr (expr_p=0x3fff728, pre_p=0x3ffd7d0, fallback=0) at /home/andreas/patched/gcc-head/gcc/gimplify.c:3240 #6 0x81255808 in gimplify_expr (expr_p=0x3fff728, pre_p=0x3ffd7d0, post_p=0x3ffbcf8, gimple_test_f=0x8123f6a8 is_gimple_stmt, fallback=0) at /home/andreas/patched/gcc-head/gcc/gimplify.c:7085 #7 0x812474e8 in gimplify_stmt (stmt_p=0x3fff728, seq_p=0x3ffd7d0) at /home/andreas/patched/gcc-head/gcc/gimplify.c:5662 #8 0x812217e0 in gimplify_statement_list (expr_p=0x3fff802a060, pre_p=0x3ffd7d0) at /home/andreas/patched/gcc-head/gcc/gimplify.c:1529 #9 0x812597d2 in gimplify_expr (expr_p=0x3fff802a060, pre_p=0x3ffd7d0, post_p=0x3ffcb10, gimple_test_f=0x8123f6a8 is_gimple_stmt, fallback=0) at /home/andreas/patched/gcc-head/gcc/gimplify.c:7514 #10 0x812474e8 in gimplify_stmt (stmt_p=0x3fff802a060, seq_p=0x3ffd7d0) at /home/andreas/patched/gcc-head/gcc/gimplify.c:5662 #11 0x8121f25e in gimplify_bind_expr (expr_p=0x3fff8019298, pre_p=0x3ffe7d8) at /home/andreas/patched/gcc-head/gcc/gimplify.c:1223 #12 0x81257358 in gimplify_expr (expr_p=0x3fff8019298, pre_p=0x3ffe7d8, post_p=0x3ffdaf0, gimple_test_f=0x8123f6a8 is_gimple_stmt, fallback=0) at /home/andreas/patched/gcc-head/gcc/gimplify.c:7299 #13 0x812474e8 in gimplify_stmt (stmt_p=0x3fff8019298, seq_p=0x3ffe7d8) at /home/andreas/patched/gcc-head/gcc/gimplify.c:5662 #14 0x8125e548 in gimplify_body (fndecl=0x3fff8019200, do_parms=1 '\001') at /home/andreas/patched/gcc-head/gcc/gimplify.c:8160 #15 0x8126070a in gimplify_function_tree (fndecl=0x3fff8019200) at /home/andreas/patched/gcc-head/gcc/gimplify.c:8294 #16 0x809aabea in cgraph_analyze_function (node=0x3fff802b000) at /home/andreas/patched/gcc-head/gcc/cgraphunit.c:652 #17 0x809ac59e in cgraph_analyze_functions () at /home/andreas/patched/gcc-head/gcc/cgraphunit.c:938 #18 0x809b166e in finalize_compilation_unit () at /home/andreas/patched/gcc-head/gcc/cgraphunit.c:2086 #19 0x8011b6c2 in c_write_global_declarations () at /home/andreas/patched/gcc-head/gcc/c-decl.c:10112 #20 0x821d8430 in compile_file () at /home/andreas/patched/gcc-head/gcc/toplev.c:568 #21 0x821db150 in do_compile () at
[Bug bootstrap/53681] s390 bootstrap failure since 187965
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53681 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Priority|P3 |P2 CC||krebbel at gcc dot gnu.org, ||matz at suse dot de
[Bug bootstrap/53681] s390 bootstrap failure since 187965
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53681 --- Comment #2 from Andreas Krebbel krebbel at gcc dot gnu.org 2012-06-15 08:30:21 UTC --- (In reply to comment #1) This is an ice-on-invalid - how can that break bootstrap? delta was a bit too eager. Same happens with: int __gcov_execle (const char *path, char *arg, ...) { int length = 0; __builtin_va_list ap, aq; while (__builtin_va_arg (ap, char *)) length++; }
[Bug bootstrap/53681] s390 bootstrap failure since 187965
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53681 --- Comment #5 from Andreas Krebbel krebbel at gcc dot gnu.org 2012-06-18 07:09:04 UTC --- (In reply to comment #4) I don't see how r187965 could cause this, but I do see the problem. mark_sym_for_renaming (called via the s390 va_arg_expr expander) is called during, well, gimplification from GENERIC. At that point SSA isn't initialized yet, so cfun-gimple_df is still NULL, and so SYMS_TO_RENAME gives a segfault. You either have to guard the call to mark_sym_for_renaming with gimple_in_ssa_p(), or get rid of the call alltogether. I don't see how new va_arg expressions would be generated during SSA optimizers, so the latter solution would be safe. No other backend calls mark_sym_for_renaming either, so just remove it. ?! You appear to have added the call to mark_sym_for_renaming with your patch. Since it isn't mentioned in the changelog perhaps it is a leftover from something else in your tree? So the solution is to revert that change? svn diff -r 187964:187965 gcc/config/s390/s390.c Index: gcc/config/s390/s390.c === --- gcc/config/s390/s390.c (revision 187964) +++ gcc/config/s390/s390.c (revision 187965) @@ -9044,6 +9044,7 @@ lab_false = create_artificial_label (UNKNOWN_LOCATION); lab_over = create_artificial_label (UNKNOWN_LOCATION); addr = create_tmp_var (ptr_type_node, addr); + mark_sym_for_renaming (addr); t = fold_convert (TREE_TYPE (reg), size_int (max_reg)); t = build2 (GT_EXPR, boolean_type_node, reg, t);
[Bug bootstrap/53681] s390 bootstrap failure since 187965
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53681 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||FIXED --- Comment #7 from Andreas Krebbel krebbel at gcc dot gnu.org 2012-06-18 11:06:39 UTC --- (In reply to comment #6) Ok. I've reverted the s390.c bits of r187965.
[Bug tree-optimization/54016] New: tree loop optimizer: no branch on count on s390 anymore since revision 185913
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54016 Bug #: 54016 Summary: tree loop optimizer: no branch on count on s390 anymore since revision 185913 Classification: Unclassified Product: gcc Version: 4.8.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassig...@gcc.gnu.org ReportedBy: kreb...@gcc.gnu.org #include string.h void * foo (void *dest, const void *src) { return memcpy (dest, src, 5); } r185913: gcc -O3 -march=z10 -S: foo: .LFB12: .cfi_startproc lghi%r4,195 lgr %r1,%r2 .L2: pfd 1,768(%r3) pfd 2,768(%r1) aghi%r4,-1 mvc 0(256,%r1),0(%r3) la %r1,256(%r1) la %r3,256(%r3) jne .L2 mvc 0(80,%r1),0(%r3) br %r14 With previous GCCs this used to be: foo: .LFB12: .cfi_startproc lghi%r4,195 lgr %r1,%r2 .L2: pfd 1,768(%r3) pfd 2,768(%r1) mvc 0(256,%r1),0(%r3) la %r1,256(%r1) la %r3,256(%r3) brctg %r4,.L2 mvc 0(80,%r1),0(%r3) br %r14
[Bug rtl-optimization/54016] loop optimizer: no branch on count on s390 anymore since revision 185913
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54016 --- Comment #2 from Andreas Krebbel krebbel at gcc dot gnu.org 2012-07-20 13:48:57 UTC --- (In reply to comment #1) Do I have to do something special now when creating a loop on RTL level? Perhaps tell the framework that the loop infos needs to be refreshed or something like that?
[Bug rtl-optimization/54016] loop optimizer: no branch on count on s390 anymore since revision 185913
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54016 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added AssignedTo|unassigned at gcc dot |krebbel at gcc dot gnu.org |gnu.org | --- Comment #4 from Andreas Krebbel krebbel at gcc dot gnu.org 2012-07-20 14:44:58 UTC --- (In reply to comment #3) If you create a new loop on RTL using the cfgloop facility you don't need to do anything special. If you only create the insns to form the loop but not actually create a representation in the loop tree then yes, you need to do that manually now. Ok that's it then. We do the latter for memcpy and friends. I'll try to have a look next week. Thanks!
[Bug rtl-optimization/57559] New: S/390: ICE with lra
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57559 Bug ID: 57559 Summary: S/390: ICE with lra Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: krebbel at gcc dot gnu.org t.c: typedef int int32_t; typedef unsigned char uint8_t; typedef unsigned int uint32_t; struct _IO_marker { }; static const int32_t mfcone = 1; static const uint8_t *mfctop = (const uint8_t *) mfcone; int32_t decContextTestEndian (uint8_t quiet) { int32_t res = 0; uint32_t dle = (uint32_t) 0; if (*mfctop != 0) { res = (int32_t) * mfctop - dle; } return res; } cc1 -fpreprocessed -quiet -march=z10 -m64 -mzarch -O1 t.c -o t.s t.c: In function ‘decContextTestEndian’: t.c:19:1: internal compiler error: Max. number of generated reload insns per insn is achieved (90) } ^ 0x806b1637 lra_constraints(bool) /home/andreas/clean/gcc-head/gcc/lra-constraints.c:3698 0x80697d8b lra(_IO_FILE*) /home/andreas/clean/gcc-head/gcc/lra.c:2278 0x80621aeb do_reload /home/andreas/clean/gcc-head/gcc/ira.c:4641 0x80621dfd rest_of_handle_reload /home/andreas/clean/gcc-head/gcc/ira.c:4753 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See http://gcc.gnu.org/bugs.html for instructions. The testcase works fine with either -mno-lra or -march=z9-109
[Bug bootstrap/57603] New: Bootstrap fail on s390x segfault in fold_marked_statements
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57603 Bug ID: 57603 Summary: Bootstrap fail on s390x segfault in fold_marked_statements Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: bootstrap Assignee: unassigned at gcc dot gnu.org Reporter: krebbel at gcc dot gnu.org Created attachment 30300 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30300action=edit delta minimized testcase cc1 -fpreprocessed -quiet -march=z9-109 -O1 t.c Program received signal SIGSEGV, Segmentation fault. 0x805c3b22 in fold_marked_statements(int, pointer_set_t*) () (gdb) bt #0 0x805c3b22 in fold_marked_statements(int, pointer_set_t*) () #1 0x805d258c in optimize_inline_calls(tree_node*) () #2 0x80900c82 in inline_transform(cgraph_node*) () #3 0x804b7b86 in execute_all_ipa_transforms() () #4 0x80234da6 in expand_function(cgraph_node*) () #5 0x80236e68 in compile() () #6 0x80237460 in finalize_compilation_unit() () #7 0x800f3740 in c_write_global_declarations() () #8 0x80568694 in compile_file() () #9 0x8056a84c in toplev_main(int, char**) () #10 0x03fffdc99088 in __libc_start_main (main=0x800d53ac main, argc=optimized out, ubp_av=0x3fff258, init=optimized out, fini=0x809ee1f8 __libc_csu_fini, rtld_fini=0x3fffdfed8f4 _dl_fini, stack_end=0x3fff1a0) at libc-start.c:226 #11 0x800d5412 in _start ()
[Bug bootstrap/57603] Bootstrap fail on s390x segfault in fold_marked_statements
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57603 --- Comment #1 from Andreas Krebbel krebbel at gcc dot gnu.org --- The failure above was observed with r200057. Here the cc1 output: cc1 -fpreprocessed -quiet -march=z9-109 -O1 t.c t.c: In function ‘d_append_string’: t.c:22:38: warning: incompatible implicit declaration of built-in function ‘strlen’ [enabled by default] d_append_buffer (dpi, s, strlen (s)); ^ t.c: In function ‘d_demangle_callback’: t.c:41:102: warning: incompatible implicit declaration of built-in function ‘strlen’ [enabled by default] else if ((__extension__ (__builtin_constant_p (8) ((__builtin_constant_p (mangled) strlen (mangled) ((size_t) (8))) || (__builtin_constant_p (_GLOBAL_) strlen (_GLOBAL_) ((size_t) (8 ? __extension__ ({ ^ t.c: In function ‘__gcclibcxx_demangle_callback’: t.c:60:15: internal compiler error: Segmentation fault int __gcclibcxx_demangle_callback (const char *mangled_name, void (*callback) (const char *, size_t, void *), void *opaque) { ^ Please submit a full bug report, with preprocessed source if appropriate. See http://gcc.gnu.org/bugs.html for instructions.
[Bug bootstrap/57604] New: LRA related bootstrap comparison failure on s390x --with-arch=zEC12
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57604 Bug ID: 57604 Summary: LRA related bootstrap comparison failure on s390x --with-arch=zEC12 Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: major Priority: P3 Component: bootstrap Assignee: unassigned at gcc dot gnu.org Reporter: krebbel at gcc dot gnu.org Comparing stages 2 and 3 warning: gcc/cc1-checksum.o differs warning: gcc/cc1plus-checksum.o differs Bootstrap comparison failure! gcc/tree-ssa-loop-im.o differs stage2: .align2 .type_ZZN19ref_always_accessedclEP11mem_ref_locE12__FUNCTION__, @object .size_ZZN19ref_always_accessedclEP11mem_ref_locE12__FUNCTION__, 11 _ZZN19ref_always_accessedclEP11mem_ref_locE12__FUNCTION__: .stringoperator() stage3: .align2 .type_ZZN19ref_always_accessedclEP11mem_ref_locE12__FUNCTION__, @object .size_ZZN19ref_always_accessedclEP11mem_ref_locE12__FUNCTION__, 12 _ZZN19ref_always_accessedclEP11mem_ref_locE12__FUNCTION__: .stringoperator () Be aware of the additional blank in the string. This does not happen when disabling LRA for bootstrap.
[Bug bootstrap/57604] LRA related bootstrap comparison failure on s390x --with-arch=zEC12
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57604 --- Comment #1 from Andreas Krebbel krebbel at gcc dot gnu.org --- This is caused by a miscompilation of cp/lex.c: #define DEF_OPERATOR(NAME, CODE, MANGLING, ARITY, ASSN_P)\ sprintf (buffer, ISALPHA (NAME[0]) ? operator %s : operator%s, NAME); \ identifier = get_identifier (buffer);\ ... The problem is that during LRA an add insn is being generated which is placed between the ISALPHA check and the conditional load for the format string. The ADD which is generated clobbers the condition code why DSE later removes the ISALPHA check completely. When generating the ADD LRA probably needs to check whether it will break dataflow. On S/390 we can do such address calculations without clobbering CC by using the load address instruction. Unfortunately la cannot be used for generic add patterns when generating 32 bit code since it only deals with the lower 31 bits. Breakpoint 1, make_insn_raw (pattern=0x3fff6195580) at /home/andreas/clean/gcc-head/gcc/emit-rtl.c:3651 3651 insn = rtx_alloc (INSN); (gdb) p debug_rtx(pattern) (parallel [ (set (reg:DI 3022) (plus:DI (reg/f:DI 34 %fp) (const_int 176 [0xb0]))) (clobber (reg:CC 33 %cc)) ]) $1 = void (gdb) bt #0 make_insn_raw (pattern=0x3fff6195580) at /home/andreas/clean/gcc-head/gcc/emit-rtl.c:3651 #1 0x805b4578 in emit_insn (x=0x3fff6195580) at /home/andreas/clean/gcc-head/gcc/emit-rtl.c:4736 #2 0x807d5e74 in lra_emit_add (x=0x3fff7a079c0, y=0x3fff78754c0, z=0x3fff632a630) at /home/andreas/clean/gcc-head/gcc/lra.c:266 #3 0x807d656e in lra_emit_move (x=0x3fff7a079c0, y=0x3fff6199600) at /home/andreas/clean/gcc-head/gcc/lra.c:415 #4 0x807eb7fa in curr_insn_transform() () #5 0x807ed45c in lra_constraints(bool) () #6 0x807dc616 in lra (f=0x816a46f0) at /home/andreas/clean/gcc-head/gcc/lra.c:2278 #7 0x807845a6 in do_reload () at /home/andreas/clean/gcc-head/gcc/ira.c:4641 #8 0x8078485e in rest_of_handle_reload () at /home/andreas/clean/gcc-head/gcc/ira.c:4753 #9 0x8085a4b2 in execute_one_pass (pass=0x81359060 pass_reload) at /home/andreas/clean/gcc-head/gcc/passes.c:2337 #10 0x8085a76a in execute_pass_list (pass=0x81359060 pass_reload) at /home/andreas/clean/gcc-head/gcc/passes.c:2389 #11 0x8085a7b8 in execute_pass_list (pass=0x813597d0 pass_rest_of_compilation) at /home/andreas/clean/gcc-head/gcc/passes.c:2390 #12 0x804ece5e in expand_function (node=0x3fff62f1130) at /home/andreas/clean/gcc-head/gcc/cgraphunit.c:1582 #13 0x804ed418 in expand_all_functions () at /home/andreas/clean/gcc-head/gcc/cgraphunit.c:1686 #14 0x804ee00c in compile () at /home/andreas/clean/gcc-head/gcc/cgraphunit.c:2020 #15 0x804ee1f0 in finalize_compilation_unit () at /home/andreas/clean/gcc-head/gcc/cgraphunit.c:2097 #16 0x802667fc in cp_write_global_declarations () at /home/andreas/clean/gcc-head/gcc/cp/decl2.c:4356 #17 0x80966c06 in compile_file () at /home/andreas/clean/gcc-head/gcc/toplev.c:558 #18 0x809697e8 in do_compile () at /home/andreas/clean/gcc-head/gcc/toplev.c:1872 #19 0x809699c4 in toplev_main (argc=32, argv=0x3fff138) at /home/andreas/clean/gcc-head/gcc/toplev.c:1948 #20 0x004f6a8ec30c in __libc_start_main () from /lib64/libc.so.6 #21 0x801335aa in _start () (gdb)
[Bug bootstrap/57609] New: S/390 ESA mode bootstrap failure since r197266
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57609 Bug ID: 57609 Summary: S/390 ESA mode bootstrap failure since r197266 Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: bootstrap Assignee: unassigned at gcc dot gnu.org Reporter: krebbel at gcc dot gnu.org cc1 -fpreprocessed libgcc2.i -quiet -dumpbase libgcc2.c -mlong-double-128 -mesa -m31 -march=g5 -auxbase-strip _negdi2.o -g -g -g -O2 -O2 -O2 -Wextra -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -version -fbuilding-libgcc -fno-stack-protector -fPIC -fvisibility=hidden -o libgcc2.s Program received signal SIGSEGV, Segmentation fault. 0x70685820 in ?? () (gdb) bt #0 0x70685820 in ?? () #1 0x006cc074 in fold_binary_loc(unsigned int, tree_code, tree_node*, tree_node*, tree_node*) () #2 0x00714c20 in fold(tree_node*) () #3 0x00537e0c in c_fully_fold_internal(tree_node*, bool, bool*, bool*) () #4 0x00538998 in c_fully_fold(tree_node*, bool, bool*) () #5 0x004e81ba in build_function_call_vec(unsigned int, tree_node*, vectree_node*, va_gc, vl_embed*, vectree_node*, va_gc, vl_embed*) () #6 0x004fd24e in c_parser_postfix_expression_after_primary(c_parser*, unsigned int, c_expr) () #7 0x004f57e8 in c_parser_postfix_expression(c_parser*) () #8 0x004f6b4c in c_parser_unary_expression(c_parser*) () #9 0x004fb0ac in c_parser_cast_expression(c_parser*, c_expr*) () #10 0x004fb2a6 in c_parser_binary_expression(c_parser*, c_expr*, c_parser_prec) () #11 0x004fba44 in c_parser_conditional_expression(c_parser*, c_expr*) () #12 0x004fc00c in c_parser_expr_no_commas(c_parser*, c_expr*) () #13 0x004fc49c in c_parser_expression(c_parser*) () #14 0x004f588a in c_parser_postfix_expression(c_parser*) () #15 0x004f6b4c in c_parser_unary_expression(c_parser*) () #16 0x004fb0ac in c_parser_cast_expression(c_parser*, c_expr*) () #17 0x004fb2a6 in c_parser_binary_expression(c_parser*, c_expr*, c_parser_prec) () #18 0x004fba44 in c_parser_conditional_expression(c_parser*, c_expr*) () #19 0x004fc00c in c_parser_expr_no_commas(c_parser*, c_expr*) () #20 0x004fc49c in c_parser_expression(c_parser*) () #21 0x004fc924 in c_parser_expression_conv(c_parser*) () #22 0x00505784 in c_parser_statement_after_labels(c_parser*) () #23 0x00502528 in c_parser_compound_statement_nostart(c_parser*) () #24 0x00502ce0 in c_parser_compound_statement(c_parser*) () #25 0x00503936 in c_parser_declaration_or_fndef(c_parser*, bool, bool, bool, bool, bool, tree_node**) () #26 0x005083fc in c_parser_external_declaration(c_parser*) () #27 0x00508d02 in c_parse_file() () #28 0x0054e950 in c_common_parse_file() () #29 0x008e2650 in compile_file() () #30 0x008e485a in toplev_main(int, char**) () #31 0x7dd008e6 in __libc_start_main (main=0x4aca88 main, argc=33, ubp_av=0x7fffef44, init=optimized out, fini=0xd11ecc __libc_csu_fini, rtld_fini=0x7dfef84c _dl_fini, stack_end=0x7fffeed8) at libc-start.c:226 #32 0x004acbd6 in _start ()
[Bug bootstrap/57604] LRA related bootstrap comparison failure on s390x --with-arch=zEC12
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57604 --- Comment #3 from Andreas Krebbel krebbel at gcc dot gnu.org --- (In reply to Vladimir Makarov from comment #2) Thanks! Btw. the Ada and Java bootstraps started failing with enabling LRA for S/390 (also without --with-arch=...). I'll wait for a patch for this PR before having a closer look. Perhaps the fails are related?!
[Bug rtl-optimization/57960] New: LRA ICE building glibc
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57960 Bug ID: 57960 Summary: LRA ICE building glibc Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: krebbel at gcc dot gnu.org Testcase extracted from Glibc e_acosl.c: typedef union { long double value; struct { unsigned int w0, w1, w2, w3; } parts32; } ieee854_long_double_shape_type; static const long double one = 1.0L; long double __ieee754_acosl (long double x) { long double z, w; int ix; ieee854_long_double_shape_type u; z = (one - u.value) * 0.5; u.parts32.w2 = 0; u.parts32.w3 = 0; w = z - u.value * u.value; return 2.0 * w; } builds fine with: cc1 -fpreprocessed -quiet -O1 -mno-lra but with: cc1 -fpreprocessed -quiet -O1 t.c: In function ‘__ieee754_acosl’: t.c:25:1: error: unable to generate reloads for: } ^ (insn 14 13 16 2 (set (strict_low_part (subreg:SI (reg/v:TI 51 [ u ]) 12)) (const_int 0 [0])) t.c:21 77 {movstrictsi} (nil)) t.c:25:1: internal compiler error: in curr_insn_transform, at lra-constraints.c:2954 0x8051ecb5 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) /home/andreas/patched/gcc-head/gcc/rtl-error.c:109 0x8046895b curr_insn_transform /home/andreas/patched/gcc-head/gcc/lra-constraints.c:2954 0x804692e1 lra_constraints(bool) /home/andreas/patched/gcc-head/gcc/lra-constraints.c:3810 0x804577a9 lra(_IO_FILE*) /home/andreas/patched/gcc-head/gcc/lra.c:2319 0x8040c22b do_reload /home/andreas/patched/gcc-head/gcc/ira.c:4689 0x8040c22b rest_of_handle_reload /home/andreas/patched/gcc-head/gcc/ira.c:4801
[Bug rtl-optimization/57963] New: LRA S/390: esa mode failure memcpy-chk
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57963 Bug ID: 57963 Summary: LRA S/390: esa mode failure memcpy-chk Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: krebbel at gcc dot gnu.org memcpy-chk with -O2 fails if compiled with lra enabled. It succeeds with -mno-lra. With lra an insn storing into the literal pool is being emitted: ira: (insn 126 127 129 11 (parallel [ (set (reg/f:SI 60 [ D.1911 ]) (plus:SI (reg/v/f:SI 126 [ buf3 ]) (const_int 14 [0xe]))) (clobber (reg:CC 33 %cc)) ]) /build/gcc-head/gcc/testsuite/gcc.c-torture/execute/builtins/memcpy-chk.c:131 297 {*addsi3} (expr_list:REG_UNUSED (reg:CC 33 %cc) (expr_list:REG_EQUIV (const:SI (plus:SI (symbol_ref:SI (buf1) [flags 0x400] var_decl 0x7b97c9c0 buf1) (const_int 14 [0xe]))) (nil (insn 129 126 135 11 (set (reg/f:SI 261) (mem/u/c:SI (symbol_ref/u:SI (*.LC69) [flags 0x2]) [3 S4 A32])) /build/gcc-head/gcc/testsuite/gcc.c-torture/execute/builtins/memcpy-chk.c:131 68 {*movsi_esa} (expr_list:REG_EQUIV (const:SI (plus:SI (symbol_ref:SI (buf1) [flags 0x400] var_decl 0x7b97c9c0 buf1) (const_int 14 [0xe]))) (nil))) reload: 126: {r406:SI=r406:SI+0xe;clobber %cc:CC;} REG_UNUSED %cc:CC REG_EQUIV const(`buf1'+0xe) Inserting insn reload before: 829: r406:SI=r126:SI Inserting insn reload after: 830: r60:SI=r406:SI alt=1,overall=1,losers=0,rld_nregs=0 Choosing alt 1 in insn 830: (0) d (1) d {*movsi_esa} alt=1,overall=1,losers=0,rld_nregs=0 Choosing alt 1 in insn 829: (0) d (1) d {*movsi_esa} Removing equiv init insn 129 (freq=9944) 129: r261:SI=[`*.LC69'] REG_EQUIV const(`buf1'+0xe) deleting insn with uid = 129. Changing pseudo 60 in operand 0 of insn 830 on equiv [`*.LC69'] alt=1,overall=609,losers=1,rld_nregs=1 alt=2,overall=17,losers=2,rld_nregs=1 alt=3,overall=0,losers=0,rld_nregs=0 Choosing alt 3 in insn 830: (0) R (1) d {*movsi_esa} (insn 829 828 126 11 (set (reg/f:SI 7 %r7 [orig:60 D.1911 ] [60]) (reg/v/f:SI 2 %r2 [orig:126 buf3 ] [126])) /build/gcc-head/gcc/testsuite/gcc.c-torture/execute/ builtins/memcpy-chk.c:131 68 {*movsi_esa} (nil)) (insn 126 829 830 11 (parallel [ (set (reg/f:SI 7 %r7 [orig:60 D.1911 ] [60]) (plus:SI (reg/f:SI 7 %r7 [orig:60 D.1911 ] [60]) (const_int 14 [0xe]))) (clobber (reg:CC 33 %cc)) ]) /build/gcc-head/gcc/testsuite/gcc.c-torture/execute/builtins/memcpy-chk.c:131 297 {*addsi3} (expr_list:REG_EQUIV (const:SI (plus:SI (symbol_ref:SI (buf1) [flags 0x400] var_decl 0x7b97c9c 0 buf1) (const_int 14 [0xe]))) (nil))) (insn 830 126 129 11 (set (mem/u/c:SI (symbol_ref/u:SI (*.LC69) [flags 0x2]) [3 S4 A32]) (reg/f:SI 7 %r7 [orig:60 D.1911 ] [60])) /build/gcc-head/gcc/testsuite/gcc.c-torture/execute/builtins/memcpy-chk.c:131 68 {*movsi_esa} (expr_list:REG_DEAD (reg/f:SI 7 %r7 [orig:60 D.1911 ] [60]) (nil))) insn 830 writes to a literal pool slot. The testcase fails with a segfault due to this.
[Bug rtl-optimization/57960] S/390: LRA ICE building glibc
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57960 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Target||s390x-ibm-linux Host||s390x-ibm-linux Summary|LRA ICE building glibc |S/390: LRA ICE building ||glibc Build||s390x-ibm-linux --- Comment #2 from Andreas Krebbel krebbel at gcc dot gnu.org --- (In reply to Marek Polacek from comment #1) But this is s390x, right? (Judging from the movstrictsi.) Yes.
[Bug bootstrap/57609] S/390 ESA mode bootstrap failure since r197266
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57609 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED --- Comment #2 from Andreas Krebbel krebbel at gcc dot gnu.org --- Fixed with r200196 http://gcc.gnu.org/ml/gcc-patches/2013-06/msg01114.html
[Bug bootstrap/57609] S/390 ESA mode bootstrap failure since r197266
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57609 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Status|RESOLVED|CLOSED --- Comment #3 from Andreas Krebbel krebbel at gcc dot gnu.org --- Fixed.
[Bug bootstrap/57603] Bootstrap fail on s390x segfault in fold_marked_statements
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57603 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Status|RESOLVED|CLOSED --- Comment #3 from Andreas Krebbel krebbel at gcc dot gnu.org --- Closed.
[Bug bootstrap/57603] Bootstrap fail on s390x segfault in fold_marked_statements
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57603 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED --- Comment #2 from Andreas Krebbel krebbel at gcc dot gnu.org --- Does not occur with r201325 anymore.
[Bug bootstrap/57604] LRA related bootstrap comparison failure on s390x --with-arch=zEC12
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57604 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED --- Comment #4 from Andreas Krebbel krebbel at gcc dot gnu.org --- Fixed with r200227: 2013-06-19 Vladimir Makarov vmaka...@redhat.com PR bootstrap/57604 * lra.c (emit_add3_insn, emit_add2_insn): New functions. (lra_emit_add): Use the functions. Add comment about Y as an address segment.
[Bug middle-end/46399] Missing type promotion for library call argument
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46399 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Status|RESOLVED|CLOSED --- Comment #4 from Andreas Krebbel krebbel at gcc dot gnu.org --- Closed.
[Bug middle-end/46399] Missing type promotion for library call argument
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46399 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #2 from Andreas Krebbel krebbel at gcc dot gnu.org --- Fixed.
[Bug middle-end/46399] Missing type promotion for library call argument
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46399 --- Comment #3 from Andreas Krebbel krebbel at gcc dot gnu.org --- Closed.
[Bug rtl-optimization/57559] [4.9 Regression] S/390: ICE with lra
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57559 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED --- Comment #1 from Andreas Krebbel krebbel at gcc dot gnu.org --- Cannot be reproduced with r201360 anymore.
[Bug rtl-optimization/57960] S/390: LRA ICE building glibc
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57960 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED --- Comment #4 from Andreas Krebbel krebbel at gcc dot gnu.org --- Fixed with r201243 2013-07-25 Vladimir Makarov vmaka...@redhat.com PR rtl-optimization/57960 * lra-constraints.c (process_alt_operands): Use the right mode when checking strict_low. 2013-07-25 Vladimir Makarov vmaka...@redhat.com PR rtl-optimization/57960 * gcc.target/s390/pr57960.c: New.
[Bug bootstrap/58035] New: LRA: S/390: Ada bootstrap fail
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58035 Bug ID: 58035 Summary: LRA: S/390: Ada bootstrap fail Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: bootstrap Assignee: unassigned at gcc dot gnu.org Reporter: krebbel at gcc dot gnu.org Tested with r201329. Ada bootstraps with LRA disabled. When enabling LRA bootstrap fails with: xgcc: internal compiler error: Segmentation fault (program gnat1) 0x8000fb75 execute /home/andreas/clean/gcc-head/gcc/gcc.c:2824 0x8000fe37 do_spec_1 /home/andreas/clean/gcc-head/gcc/gcc.c:4616 0x80013145 process_brace_body /home/andreas/clean/gcc-head/gcc/gcc.c:5873 0x80013145 handle_braces /home/andreas/clean/gcc-head/gcc/gcc.c:5787 0x800110b5 do_spec_1 /home/andreas/clean/gcc-head/gcc/gcc.c:5270 0x80013145 process_brace_body /home/andreas/clean/gcc-head/gcc/gcc.c:5873 0x80013145 handle_braces /home/andreas/clean/gcc-head/gcc/gcc.c:5787 0x800110b5 do_spec_1 /home/andreas/clean/gcc-head/gcc/gcc.c:5270 0x800103fb do_spec_1 /home/andreas/clean/gcc-head/gcc/gcc.c:5375 0x80013145 process_brace_body /home/andreas/clean/gcc-head/gcc/gcc.c:5873 0x80013145 handle_braces /home/andreas/clean/gcc-head/gcc/gcc.c:5787 0x800110b5 do_spec_1 /home/andreas/clean/gcc-head/gcc/gcc.c:5270 0x80013145 process_brace_body /home/andreas/clean/gcc-head/gcc/gcc.c:5873 0x80013145 handle_braces /home/andreas/clean/gcc-head/gcc/gcc.c:5787 0x800110b5 do_spec_1 /home/andreas/clean/gcc-head/gcc/gcc.c:5270 0x80012557 do_spec_2 /home/andreas/clean/gcc-head/gcc/gcc.c:4317 0x80013a3b do_spec(char const*) /home/andreas/clean/gcc-head/gcc/gcc.c:4284 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See http://gcc.gnu.org/bugs.html for instructions. make[7]: *** [s-auxdec.o] Error 4
[Bug middle-end/58335] New: S/390: reload vs lra regression - testcase builtin-in-setjmp
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58335 Bug ID: 58335 Summary: S/390: reload vs lra regression - testcase builtin-in-setjmp Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: krebbel at gcc dot gnu.org The following testcase fails when compiling with LRA enabled and succeeds without LRA: FAIL: gcc.c-torture/execute/built-in-setjmp.c execution, -O1 main: .LFB1: .loc 1 16 0 stmg%r6,%r15,48(%r15) .LCFI2: larl%r13,.L13 lgr%r14,%r15 aghi%r15,-240 .LCFI3: aghi%r14,-64 std%f8,0(%r14) std%f10,8(%r14) std%f12,16(%r14) std%f14,24(%r14) std%f9,32(%r14) std%f11,40(%r14) std%f13,48(%r14) std%f15,56(%r14) lgr%r11,%r15 .LCFI4: .loc 1 17 0 aghi%r15,-32 lgr%r2,%r15 aghi%r2,160 stg%r2,160(%r11) .LVL0: .loc 1 19 0 larl%r1,.LC1 mvc0(5,%r2),0(%r1) .loc 1 21 0 larl%r1,buf la%r3,176(%r11) 176+r11 is stored as framepointer stg%r3,0(%r1) larl%r3,.L4 stg%r3,8(%r1) stg%r15,24(%r1) stg%r13,32(%r1) lhi%r1,0 .loc 1 23 0 stg%r2,168(%r11) j.L5 .LVL1: .L4: .loc 1 21 0 lghi%r1,-160 la%r11,0(%r1,%r11)When restoring r11 only 160 is subtracted lhi%r1,1 .L5: .loc 1 21 0 is_stmt 0 discriminator 4 ltr%r1,%r1 je.L6 .loc 1 23 0 is_stmt 1 lhi%r0,0 larl%r1,.LC1 lg%r2,168(%r11) Wrong value loaded here clst%r1,%r2 segfault here During LRA the elimination offset for r34 %fp to r11 changes from 160 to 176. The first insn gets the update but not the second. From a first glance the reason appears to be that the insn for lghi %r1,-160 it self is generated by a reload using a pseudo register which equals -160. This register does not seem to get the update after the offset changed.
[Bug rtl-optimization/57963] LRA S/390: esa mode failure memcpy-chk
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57963 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED --- Comment #2 from Andreas Krebbel krebbel at gcc dot gnu.org --- Fixed with: http://gcc.gnu.org/ml/gcc-patches/2013-08/msg00091.html
[Bug middle-end/58335] S/390: reload vs lra regression - testcase builtin-in-setjmp
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58335 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED --- Comment #3 from Andreas Krebbel krebbel at gcc dot gnu.org --- Regression is fixed. Thanks!
[Bug middle-end/58335] S/390: reload vs lra regression - testcase builtin-in-setjmp
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58335 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Status|RESOLVED|CLOSED --- Comment #4 from Andreas Krebbel krebbel at gcc dot gnu.org --- Closing per comment above.
[Bug target/58574] [4.8/4.9 Regression] Wrong code due to s390x machine reorg pass
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58574 --- Comment #5 from Andreas Krebbel krebbel at gcc dot gnu.org --- Thanks for tracking this down! (In reply to Jakub Jelinek from comment #2) I'd say the bug is in s390_chunkify_start: if (GET_CODE (pat) == PARALLEL XVECLEN (pat, 0) 2) pat = XVECEXP (pat, 0, 0); Dunno what exactly the 2 condition has been added for, JUMP_INSNs with The more complex loop jumps might have more than 2 I think. PARALLEL with XVECLEN (pat, 0) == 2 are: 1) casesi_jump 2) *cmp_and_br_signed_mode, *cmp_and_br_unsigned_mode, *icmp_and_br_signed_mode, *icmp_and_br_unsigned_mode 3) *ccraw_to_int I can understand why you wouldn't want to handle 1) in there, and supposedly 3) should be split before machine reorg or worst case at the start of it. But 2), this case, it looks wrong not to do anything here. Note that similar condition is in s390_split_branches, no idea what do you want to do there. But perhaps TARGET_Z10 implies TARGET_ZARCH and thus s390_split_branches would be never called. Exactly.
[Bug target/58574] [4.8/4.9 Regression] Wrong code due to s390x machine reorg pass
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58574 --- Comment #6 from Andreas Krebbel krebbel at gcc dot gnu.org --- (In reply to Jakub Jelinek from comment #4) Created attachment 30935 [details] Alternate fix Another possibility. If the check is there really just to prevent handling tablejumps, I wonder why we can't do the tablejump handling first and only if it didn't do anything, handle all other jumps. I agree with that patch. Since tablejump_p is available it is easier to read the other way around. Thanks!
[Bug target/58574] [4.8/4.9 Regression] Wrong code due to s390x machine reorg pass
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58574 --- Comment #7 from Andreas Krebbel krebbel at gcc dot gnu.org --- Created attachment 30938 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30938action=edit Alternate fix - v2 Since tablejump_p is checking for JUMP_P anyway we could move the check even outside the jump insn check. I've also changed s390_split_branches to exit early for table jumps. Untested so far.
[Bug target/58574] [4.8/4.9 Regression] Wrong code due to s390x machine reorg pass
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58574 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Attachment #30938|0 |1 is obsolete|| --- Comment #11 from Andreas Krebbel krebbel at gcc dot gnu.org --- Created attachment 30943 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30943action=edit Upstream patch I've tested this patch on s390 and s390x with --with-arch=z10 --with-tune=zEC12 and the default options on GCC head. No regressions.
[Bug target/58574] [4.8/4.9 Regression] Wrong code due to s390x machine reorg pass
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58574 --- Comment #13 from Andreas Krebbel krebbel at gcc dot gnu.org --- Author: krebbel Date: Tue Oct 1 13:33:02 2013 New Revision: 203060 URL: http://gcc.gnu.org/viewcvs?rev=203060root=gccview=rev Log: 2013-10-01 Jakub Jelinek ja...@redhat.com Andreas Krebbel andreas.kreb...@de.ibm.com PR target/58574 * config/s390/s390.c (s390_split_branches): Modify check for table jump insns. (s390_chunkify_start): Rearrange table jump insn check in order to deal with compare and branch insns correctly. 2013-10-01 Jakub Jelinek ja...@redhat.com PR target/58574 * gcc.c-torture/execute/pr58574.c: New testcase. Added: trunk/gcc/testsuite/gcc.c-torture/execute/pr58574.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/s390/s390.c trunk/gcc/testsuite/ChangeLog
[Bug target/58574] [4.8/4.9 Regression] Wrong code due to s390x machine reorg pass
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58574 --- Comment #14 from Andreas Krebbel krebbel at gcc dot gnu.org --- (In reply to Jakub Jelinek from comment #12) Thanks, are you going to post it to gcc-patches and commit then? Can I post the 4.8 patch there afterwards, or do you prefer some different alternative for 4.8? Upstream version committed. Feel free to commit your version to 4.8 branch. Thanks!
[Bug bootstrap/61078] [5 Regression] ESA mode bootstrap failure since r209897
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61078 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2014-08-25 Ever confirmed|0 |1 --- Comment #2 from Andreas Krebbel krebbel at gcc dot gnu.org --- The bash crash comes from using a miscompiled libgcc_s.so during gcc build. There are la r15,0(r15) instructions everywhere in the code used for decrementing the stack pointer where 0 is wrongly used as displacement. This in turn is the result of being compiled by a miscompiled cc1plus. The following negation of the frame size value in s390_emit_prologue function is wrongly split by the negdi2_31 splitter. ... if (cfun_frame_layout.frame_size 0) { rtx frame_off = GEN_INT (-cfun_frame_layout.frame_size); ...
[Bug bootstrap/61078] [5 Regression] ESA mode bootstrap failure since r209897
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61078 --- Comment #3 from Andreas Krebbel krebbel at gcc dot gnu.org --- (In reply to jgreenhalgh from comment #1) I'm happy to take a look at this, but I have no access to an s390 ESA mode environment, so will struggle to make much progress. If it is the case that s390 relies on PUSH_ARGS_REVERSED == 0, then r209897 will need to be reverted as it is clearly erroneous. s390 indeed uses PUSH_ARGS_REVERSED == 0 but the code correctness does not actually depend on this since every argument has a dedicated slot either in a register or a stack slot. In the case described above your patch just revealed a backend problem: https://gcc.gnu.org/ml/gcc-patches/2014-08/msg02313.html On the other hand I think the asm code looks more obvious on S/390 with PUSH_ARGS_REVERSED=0 since the operands then are assigned in the expected order. There is simply no reason for doing it the other way around on S/390. While I don't have a strong opinion about this I would prefer to go back to the old behavior. Also there seem to be other code (gimplify.c) which still depends on PUSH_ARGS_REVERSED?! I'm also not sure about the performance impact of this. On S/390 the generated code changes a lot with your patch. Otherwise, any reduced testcase you can find where we do the wrong thing preparing stack arguments will be of great help hunting the bug.
[Bug bootstrap/61078] [5 Regression] ESA mode bootstrap failure since r209897
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61078 --- Comment #4 from Andreas Krebbel krebbel at gcc dot gnu.org --- While the patch fixes this particular case the problem appears to be more fundamental. The S/390 backend only considers GPR register pairs starting with an even register to be valid (REGNO_PAIR_OK in s390.h). However, thanks to our ABI we might encounter invalid pairs with hard regs during parameter passing. This used to be resolved by the call preparation code which loads the parameter into a pseudo first. That's why our move patterns are capable of dealing with overlapping register pairs. However, the other patterns aren't. In that case it was the negdi pattern but there might be similar issues with add, sub, ... . In this example the invalid register pair in the negdi pattern comes from combining the move which has been generated during call preparation (insn 18) with the negdi pattern: before combine: (insn 17 16 18 5 (parallel [ (set (reg:DI 49 [ D.1409 ]) (neg:DI (reg:DI 44 [ D.1409 ]))) (clobber (reg:CC 33 %cc)) ]) t.c:20 491 {*negdi2_31} (expr_list:REG_DEAD (reg:DI 44 [ D.1409 ]) (expr_list:REG_UNUSED (reg:CC 33 %cc) (nil (insn 18 17 19 5 (set (reg:DI 3 %r3) (reg:DI 49 [ D.1409 ])) t.c:20 64 {*movdi_31} (expr_list:REG_DEAD (reg:DI 49 [ D.1409 ]) (nil))) after combine: (insn 18 17 19 5 (parallel [ (set (reg:DI 3 %r3) (neg:DI (reg:DI 44 [ D.1409 ]))) (clobber (reg:CC 33 %cc)) ]) t.c:20 491 {*negdi2_31} (expr_list:REG_UNUSED (reg:CC 33 %cc) (expr_list:REG_DEAD (reg:DI 44 [ D.1409 ]) (nil r44 then is assigned to hard reg r2 creating the problematic overlap: (insn 18 20 19 5 (parallel [ (set (reg:DI 3 %r3) (neg:DI (reg:DI 2 %r2 [orig:44 D.1409 ] [44]))) (clobber (reg:CC 33 %cc)) ]) t.c:20 491 {*negdi2_31} (nil)) I'm not sure what the best way is to fix this. Instead of implementing splitters for all these cases the easiest might to mark the destination operands as early clobber in the split patterns. That way reload is forced to repair the situation.
[Bug bootstrap/61078] [5 Regression] ESA mode bootstrap failure since r209897
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61078 --- Comment #5 from Andreas Krebbel krebbel at gcc dot gnu.org --- Created attachment 33411 -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33411action=edit Reduced testcase compile with -O2 -mesa -m31 -march=g5
[Bug bootstrap/61078] [5 Regression] ESA mode bootstrap failure since r209897
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61078 --- Comment #7 from Andreas Krebbel krebbel at gcc dot gnu.org --- (In reply to jgreenhalgh from comment #6) As mentioned in the original patch submission [1], the effect is to allow removal the removal of temporary registers when shuffling arguments for a call. Ok. In fact it is exactly the removal of a temporary reg which revealed the back-end bug. The overlapping live ranges so far protected us from running into this particular problem. If S/390 passes small numbers of arguments in registers, I'd expect the net result to be positive for performance. I agree. S/390 should be able to benefit from that so forget about reverting your patch :) I'll find a way to fix the patterns in question. Thanks for the explanation!
[Bug target/62662] [4.9/5 Regression] Miscompilation of Qt on s390x
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62662 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2014-09-02 Assignee|unassigned at gcc dot gnu.org |krebbel at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #2 from Andreas Krebbel krebbel at gcc dot gnu.org --- Mine. Probably caused by my FPR save slot patchset.
[Bug debug/63135] New: [4.9 regression] Infinite loop in var-tracking
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63135 Bug ID: 63135 Summary: [4.9 regression] Infinite loop in var-tracking Product: gcc Version: 4.9.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: debug Assignee: unassigned at gcc dot gnu.org Reporter: krebbel at gcc dot gnu.org Created attachment 33435 -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33435action=edit Preprocessed zsh 5.0.6 source file zsh compilation runs into infinite loop on S/390: cc1 builtin.i -m64 -mzarch -march=z900 -g -O2 -fstack-protector-all -o builtin.s reghunt indicates that the failure started to appear with r208165 and for mainline got fixed (or papered over) with r211007. However, it still fails with GCC 4.9 branch. (gdb) bt #0 0x8088f8ea in dv_uid (dv=0x812accb8) at /home/andreas/clean/gcc/gcc/var-tracking.c:443 #1 dv_htab_hash (dv=0x812accb8) at /home/andreas/clean/gcc/gcc/var-tracking.c:461 #2 dv_htab_hash (dv=0x812accb8) at /home/andreas/clean/gcc/gcc/var-tracking.c:1604 #3 vars_copy (src=..., dst=...) at /home/andreas/clean/gcc/gcc/var-tracking.c:1816 #4 shared_hash_unshare (vars=0x81258960) at /home/andreas/clean/gcc/gcc/var-tracking.c:1610 #5 0x80895d34 in shared_hash_find_slot_unshare_1 (ins=INSERT, dvhash=169, dv=0x81188080, pvars=0x81187758) at /home/andreas/clean/gcc/gcc/var-tracking.c:1646 #6 shared_hash_find_slot_unshare (ins=INSERT, dv=0x81188080, pvars=0x81187758) at /home/andreas/clean/gcc/gcc/var-tracking.c:1654 #7 set_variable_part (set=0x81187620, loc=0x3fff6e1e8b8, dv=0x81188080, offset=0, initialized=VAR_INIT_STATUS_INITIALIZED, set_src=0x0, iopt=INSERT) at /home/andreas/clean/gcc/gcc/var-tracking.c:7768 #8 0x8089625a in var_mem_decl_set (set=0x81187620, loc=0x3fff6e1e8b8, initialized=optimized out, dv=0x81188080, offset=optimized out, set_src=0x0, iopt=INSERT) at /home/andreas/clean/gcc/gcc/var-tracking.c:2341 #9 0x8089acd0 in val_bind (modified=optimized out, loc=optimized out, val=optimized out, set=optimized out) at /home/andreas/clean/gcc/gcc/var-tracking.c:2455 #10 val_resolve (set=0x81187620, val=0x81188080, loc=0x3fff6e1e8b8, insn=optimized out) at /home/andreas/clean/gcc/gcc/var-tracking.c:2653 #11 0x8089b8b6 in compute_bb_dataflow (bb=0x3fff6cbcc30) at /home/andreas/clean/gcc/gcc/var-tracking.c:6718 #12 0x8089cba4 in vt_find_locations () at /home/andreas/clean/gcc/gcc/var-tracking.c:7070 #13 0x8089f0ca in variable_tracking_main_1 () at /home/andreas/clean/gcc/gcc/var-tracking.c:10294
[Bug debug/63135] [4.9 regression] Infinite loop in var-tracking
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63135 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Target||s390x-ibm-linux CC||doko at gcc dot gnu.org Host||s390x-ibm-linux Build||s390x-ibm-linux --- Comment #1 from Andreas Krebbel krebbel at gcc dot gnu.org --- CC'ing Matthias since this is Debian BZ: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=759870
[Bug target/62662] [4.9/5 Regression] Miscompilation of Qt on s390x
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62662 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added CC||vmakarov at gcc dot gnu.org --- Comment #3 from Andreas Krebbel krebbel at gcc dot gnu.org --- Reghunt indicates that this behavior started with r204752 commit 4bb79f36f65507171b6da263c91e6590334bd342 Author: vmakarov vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4 Date: Wed Nov 13 18:00:43 2013 + 2013-11-13 Vladimir Makarov vmaka...@redhat.com PR rtl-optimization/59036 * ira-color.c (struct allocno_color_data): Add new members first_thread_allocno, next_thread_allocno, thread_freq. (sorted_copies): New static var. (allocnos_conflict_by_live_ranges_p, copy_freq_compare_func): Move up. (allocno_thread_conflict_p, merge_threads) (form_threads_from_copies, form_threads_from_bucket) (form_threads_from_colorable_allocno, init_allocno_threads): New functions. (bucket_allocno_compare_func): Add comparison by thread frequency and threads. (add_allocno_to_ordered_bucket): Rename to add_allocno_to_ordered_colorable_bucket. Remove parameter. (push_only_colorable): Call form_threads_from_bucket. (color_pass): Call init_allocno_threads. Use consideration_allocno_bitmap instead of coloring_allocno_bitmap for nuillify allocno color data. (ira_initiate_assign, ira_finish_assign): Allocate/free sorted_copies. (coalesce_allocnos): Use static sorted copies.
[Bug target/62662] [4.9/5 Regression] Miscompilation of Qt on s390x
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62662 --- Comment #5 from Andreas Krebbel krebbel at gcc dot gnu.org --- (In reply to Jakub Jelinek from comment #4) I agree that this is something we need to fix in the back-end. I was just curious about when this surfaced first and keep that info for the records.
[Bug bootstrap/61078] [5 Regression] ESA mode bootstrap failure since r209897
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61078 --- Comment #8 from Andreas Krebbel krebbel at gcc dot gnu.org --- Author: krebbel Date: Wed Sep 3 08:06:09 2014 New Revision: 214850 URL: https://gcc.gnu.org/viewcvs?rev=214850root=gccview=rev Log: 2014-09-03 Andreas Krebbel andreas.kreb...@de.ibm.com PR target/61078 * config/s390/s390.md (*negdi2_31): Add s390_split_ok_p check and add a second splitter to handle the remaining cases. 2014-09-03 Andreas Krebbel andreas.kreb...@de.ibm.com PR target/61078 * gcc.target/s390/pr61078.c: New testcase. Added: trunk/gcc/testsuite/gcc.target/s390/pr61078.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/s390/s390.md trunk/gcc/testsuite/ChangeLog
[Bug bootstrap/61078] [5 Regression] ESA mode bootstrap failure since r209897
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61078 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #9 from Andreas Krebbel krebbel at gcc dot gnu.org --- Fixed per comment 8
[Bug target/62662] [4.9/5 Regression] Miscompilation of Qt on s390x
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62662 --- Comment #6 from Andreas Krebbel krebbel at gcc dot gnu.org --- Created attachment 33450 -- https://gcc.gnu.org/bugzilla/attachment.cgi?id=33450action=edit Experimental patch I'm currently bootstrapping this patch with various combinations. It will take some time.
[Bug target/62662] [4.9/5 Regression] Miscompilation of Qt on s390x
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62662 --- Comment #7 from Andreas Krebbel krebbel at gcc dot gnu.org --- Author: krebbel Date: Fri Sep 19 09:14:59 2014 New Revision: 215381 URL: https://gcc.gnu.org/viewcvs?rev=215381root=gccview=rev Log: 2014-09-19 Andreas Krebbel andreas.kreb...@de.ibm.com PR target/62662 * config/s390/s390.c (s390_emit_epilogue): When doing the return address load optimization force s390_optimize_prologue to leave it that way. Only do the optimization if we already decided to push r14 into a stack slot. Modified: trunk/gcc/ChangeLog trunk/gcc/config/s390/s390.c
[Bug target/62662] [4.9/5 Regression] Miscompilation of Qt on s390x
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62662 --- Comment #8 from Andreas Krebbel krebbel at gcc dot gnu.org --- Author: krebbel Date: Fri Sep 19 09:20:38 2014 New Revision: 215383 URL: https://gcc.gnu.org/viewcvs?rev=215383root=gccview=rev Log: 2014-09-19 Andreas Krebbel andreas.kreb...@de.ibm.com PR target/62662 * config/s390/s390.c (s390_emit_epilogue): When doing the return address load optimization force s390_optimize_prologue to leave it that way. Only do the optimization if we already decided to push r14 into a stack slot. Modified: branches/gcc-4_9-branch/gcc/config/s390/s390.c
[Bug debug/63300] 'const volatile' sometimes stripped in debug info
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63300 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2014-09-19 CC||mark at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Andreas Krebbel krebbel at gcc dot gnu.org --- Reghunt indicates that this is caused by r214143. For a const volatile type none of the following IFs is triggered: if ((cv_quals TYPE_QUAL_CONST) /* If there are multiple type modifiers, prefer a path which leads to a qualified type. */ (((cv_quals ~TYPE_QUAL_CONST) == TYPE_UNQUALIFIED) || get_qualified_type (type, cv_quals) == NULL_TREE || (get_qualified_type (type, cv_quals ~TYPE_QUAL_CONST) != NULL_TREE))) { mod_type_die = new_die (DW_TAG_const_type, mod_scope, type); sub_die = modified_type_die (type, cv_quals ~TYPE_QUAL_CONST, context_die); } else if ((cv_quals TYPE_QUAL_VOLATILE) (((cv_quals ~TYPE_QUAL_VOLATILE) == TYPE_UNQUALIFIED) || get_qualified_type (type, cv_quals) == NULL_TREE || (get_qualified_type (type, cv_quals ~TYPE_QUAL_VOLATILE) != NULL_TREE))) { mod_type_die = new_die (DW_TAG_volatile_type, mod_scope, type); sub_die = modified_type_die (type, cv_quals ~TYPE_QUAL_VOLATILE, context_die); } else if (cv_quals TYPE_QUAL_RESTRICT) { mod_type_die = new_die (DW_TAG_restrict_type, mod_scope, type); sub_die = modified_type_die (type, cv_quals ~TYPE_QUAL_RESTRICT, context_die); } So the DIE ends up with an unqualified type.
[Bug debug/63300] 'const volatile' sometimes stripped in debug info
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63300 --- Comment #4 from Andreas Krebbel krebbel at gcc dot gnu.org --- Author: krebbel Date: Thu Sep 25 07:37:36 2014 New Revision: 215582 URL: https://gcc.gnu.org/viewcvs?rev=215582root=gccview=rev Log: 2014-09-25 Andreas Arnez ar...@linux.vnet.ibm.com PR 63300/debug * tree.c (check_base_type): New. (check_qualified_type): Exploit new helper function above. * tree.h (check_base_type): New prototype. * dwarf2out.c (get_nearest_type_subqualifiers): New. (modified_type_die): Fix handling for qualifiers. Qualifiers to peel off are now determined using get_nearest_type_subqualifiers. 2014-09-25 Mark Wielaard m...@redhat.com PR 63300/debug * gcc.dg/debug/dwarf2/stacked-qualified-types-1.c: New testcase. * gcc.dg/debug/dwarf2/stacked-qualified-types-2.c: Likewise. * gcc.dg/guality/pr63300-const-volatile.c: New testcase. Added: trunk/gcc/testsuite/gcc.dg/debug/dwarf2/stacked-qualified-types-1.c trunk/gcc/testsuite/gcc.dg/debug/dwarf2/stacked-qualified-types-2.c trunk/gcc/testsuite/gcc.dg/guality/pr63300-const-volatile.c Modified: trunk/gcc/dwarf2out.c trunk/gcc/tree.c trunk/gcc/tree.h
[Bug target/59803] [4.8 Regression] s390x -march=z10 reload ICE
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59803 Andreas Krebbel krebbel at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Last reconfirmed||2014-01-14 Assignee|unassigned at gcc dot gnu.org |krebbel at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Andreas Krebbel krebbel at gcc dot gnu.org --- There is a secondary reload which is supposed to handle that case. I'll try to figure out what went wrong here. Due to LRA being enabled by default on S/390 the situation on trunk is probably not comparable.
[Bug target/59803] [4.8 Regression] s390x -march=z10 reload ICE
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59803 --- Comment #2 from Andreas Krebbel krebbel at gcc dot gnu.org --- Created attachment 31832 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=31832action=edit Experimental fix This patch fixes the problem. I'll post/commit it when it passed regtesting.