[Bug middle-end/55030] [4.8 Regression]: gcc.c-torture/execute/builtins/memcpy-chk.c execution, -Os (et al)

2012-11-26 Thread krebbel at gcc dot gnu.org

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

2012-11-27 Thread krebbel at gcc dot gnu.org

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

2012-11-28 Thread krebbel at gcc dot gnu.org


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

2012-12-05 Thread krebbel at gcc dot gnu.org


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

2012-12-05 Thread krebbel at gcc dot gnu.org


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

2012-12-05 Thread krebbel at gcc dot gnu.org


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

2012-12-05 Thread krebbel at gcc dot gnu.org


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

2012-12-05 Thread krebbel at gcc dot gnu.org


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

2012-12-17 Thread krebbel at gcc dot gnu.org


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

2012-12-18 Thread krebbel at gcc dot gnu.org


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

2012-12-18 Thread krebbel at gcc dot gnu.org


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

2012-12-20 Thread krebbel at gcc dot gnu.org


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

2013-01-09 Thread krebbel at gcc dot gnu.org


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

2013-01-09 Thread krebbel at gcc dot gnu.org


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

2013-01-10 Thread krebbel at gcc dot gnu.org


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

2013-01-10 Thread krebbel at gcc dot gnu.org


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

2013-01-11 Thread krebbel at gcc dot gnu.org


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

2013-01-11 Thread krebbel at gcc dot gnu.org


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

2013-10-09 Thread krebbel at gcc dot gnu.org
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

2013-10-10 Thread krebbel at gcc dot gnu.org
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

2013-11-29 Thread krebbel at gcc dot gnu.org
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

2013-12-02 Thread krebbel at gcc dot gnu.org
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 ?

2012-10-01 Thread krebbel at gcc dot gnu.org


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 ?

2012-10-01 Thread krebbel at gcc dot gnu.org


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 ?

2012-10-01 Thread krebbel at gcc dot gnu.org


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

2013-03-07 Thread krebbel at gcc dot gnu.org


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

2013-03-07 Thread krebbel at gcc dot gnu.org


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

2013-03-22 Thread krebbel at gcc dot gnu.org

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

2013-03-22 Thread krebbel at gcc dot gnu.org

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

2013-03-25 Thread krebbel at gcc dot gnu.org

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

2013-03-25 Thread krebbel at gcc dot gnu.org


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

2013-03-26 Thread krebbel at gcc dot gnu.org


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

2013-04-08 Thread krebbel at gcc dot gnu.org


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

2013-04-08 Thread krebbel at gcc dot gnu.org


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

2013-04-16 Thread krebbel at gcc dot gnu.org

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

2013-04-16 Thread krebbel at gcc dot gnu.org


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

2013-04-16 Thread krebbel at gcc dot gnu.org


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

2013-04-25 Thread krebbel at gcc dot gnu.org


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

2013-04-25 Thread krebbel at gcc dot gnu.org


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

2012-04-27 Thread krebbel at gcc dot gnu.org
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

2012-04-27 Thread krebbel at gcc dot gnu.org
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

2012-05-08 Thread krebbel at gcc dot gnu.org
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

2012-06-15 Thread krebbel at gcc dot gnu.org
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

2012-06-15 Thread krebbel at gcc dot gnu.org
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

2012-06-15 Thread krebbel at gcc dot gnu.org
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

2012-06-18 Thread krebbel at gcc dot gnu.org
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

2012-06-18 Thread krebbel at gcc dot gnu.org
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

2012-07-18 Thread krebbel at gcc dot gnu.org
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

2012-07-20 Thread krebbel at gcc dot gnu.org
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

2012-07-20 Thread krebbel at gcc dot gnu.org
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

2013-06-07 Thread krebbel at gcc dot gnu.org
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

2013-06-13 Thread krebbel at gcc dot gnu.org
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

2013-06-13 Thread krebbel at gcc dot gnu.org
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

2013-06-13 Thread krebbel at gcc dot gnu.org
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

2013-06-14 Thread krebbel at gcc dot gnu.org
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

2013-06-14 Thread krebbel at gcc dot gnu.org
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

2013-06-19 Thread krebbel at gcc dot gnu.org
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

2013-07-23 Thread krebbel at gcc dot gnu.org
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

2013-07-23 Thread krebbel at gcc dot gnu.org
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

2013-07-24 Thread krebbel at gcc dot gnu.org
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

2013-07-31 Thread krebbel at gcc dot gnu.org
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

2013-07-31 Thread krebbel at gcc dot gnu.org
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

2013-07-31 Thread krebbel at gcc dot gnu.org
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

2013-07-31 Thread krebbel at gcc dot gnu.org
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

2013-07-31 Thread krebbel at gcc dot gnu.org
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

2013-07-31 Thread krebbel at gcc dot gnu.org
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

2013-07-31 Thread krebbel at gcc dot gnu.org
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

2013-07-31 Thread krebbel at gcc dot gnu.org
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

2013-07-31 Thread krebbel at gcc dot gnu.org
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

2013-07-31 Thread krebbel at gcc dot gnu.org
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

2013-07-31 Thread krebbel at gcc dot gnu.org
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

2013-09-06 Thread krebbel at gcc dot gnu.org
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

2013-09-09 Thread krebbel at gcc dot gnu.org
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

2013-09-20 Thread krebbel at gcc dot gnu.org
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

2013-09-20 Thread krebbel at gcc dot gnu.org
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

2013-09-30 Thread krebbel at gcc dot gnu.org
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

2013-09-30 Thread krebbel at gcc dot gnu.org
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

2013-09-30 Thread krebbel at gcc dot gnu.org
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

2013-10-01 Thread krebbel at gcc dot gnu.org
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

2013-10-01 Thread krebbel at gcc dot gnu.org
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

2013-10-01 Thread krebbel at gcc dot gnu.org
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

2014-08-25 Thread krebbel at gcc dot gnu.org
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

2014-08-25 Thread krebbel at gcc dot gnu.org
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

2014-08-28 Thread krebbel at gcc dot gnu.org
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

2014-08-28 Thread krebbel at gcc dot gnu.org
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

2014-08-29 Thread krebbel at gcc dot gnu.org
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

2014-09-02 Thread krebbel at gcc dot gnu.org
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

2014-09-02 Thread krebbel at gcc dot gnu.org
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

2014-09-02 Thread krebbel at gcc dot gnu.org
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

2014-09-02 Thread krebbel at gcc dot gnu.org
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

2014-09-03 Thread krebbel at gcc dot gnu.org
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

2014-09-03 Thread krebbel at gcc dot gnu.org
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

2014-09-03 Thread krebbel at gcc dot gnu.org
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

2014-09-04 Thread krebbel at gcc dot gnu.org
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

2014-09-19 Thread krebbel at gcc dot gnu.org
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

2014-09-19 Thread krebbel at gcc dot gnu.org
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

2014-09-19 Thread krebbel at gcc dot gnu.org
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

2014-09-25 Thread krebbel at gcc dot gnu.org
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

2014-01-14 Thread krebbel at gcc dot gnu.org
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

2014-01-14 Thread krebbel at gcc dot gnu.org
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.


  1   2   3   4   5   6   7   >