[Bug debug/86549] [meta-bug] -flto -g0 vs. -g issues

2019-09-02 Thread egallager at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86549

Eric Gallager  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #5 from Eric Gallager  ---
(In reply to Richard Biener from comment #4)
> Making a meta-bug, all known issues are fixed.

...so... closing this, too, then. It can be re-opened if new issues falling
under it turn up.

[Bug fortran/91641] [9/10 Regression] ICE in gfc_conv_is_contiguous_expr, at fortran/trans-intrinsic.c:2857

2019-09-02 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91641

--- Comment #2 from kargl at gcc dot gnu.org ---
I have a patch.

[Bug middle-end/91433] Performance Regression when upgrading from 8.3.0 to 9.0

2019-09-02 Thread crazylht at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91433

Hongtao.liu  changed:

   What|Removed |Added

 CC||crazylht at gmail dot com

--- Comment #4 from Hongtao.liu  ---
Maybe you can cut a testcase from benchmark which can reproduce this
regression.
So that people in community can really do some help, orelse we didn't even know
what regression it is.

[Bug fortran/91556] Problems with better interface checking

2019-09-02 Thread sgk at troutmask dot apl.washington.edu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91556

--- Comment #24 from Steve Kargl  ---
On Mon, Sep 02, 2019 at 06:51:23PM +, anlauf at gcc dot gnu.org wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91556
> 
> --- Comment #23 from anlauf at gcc dot gnu.org ---
> (In reply to Thomas Koenig from comment #22)
> > A problem with such code is that type violations like that are likely to
> > cause
> > actual wrong code issues because much of the aliasing analysis is type
> > based...
> > 
> > What I could do is to
> > 
> > a) restrict the number of warnings for each routine to one (put a flag
> >Into the gsym)
> > 
> > b) try to figure something out to make this harmless to the middle end...
> > like
> >passing a void* instead of a reference.
> 
> I do see that there was a motivation for the change.  However, I think that
> the resolution happens at the wrong time and comes to wrong conclusions.
> 
> The example in comment#14 compiles if I add e.g.
> 
>   interface
>  subroutine my_mpi_bcast_wrapper (buffer, len)
>type(*), dimension(..) :: buffer
>integer, intent(in):: len
>  end subroutine my_mpi_bcast_wrapper
>   end interface
> 
> which I think is the appropriate explicit interface *if* it needs to be
> explicitly given.  Then the code compiles without any warnings.

This is exactly why TYPE(*) was added to the Fortran standard.
I would need to good spelunking on the J3 website, but I vaguely
recal that Craig Rassmussen from the OpenMP standard committee
championed it.  From the Fortran 2018 standard

   An entity that is declared using the TYPE(*) type specifier is
   assumed-type and is an unlimited polymorphic entity.  It is not
   declared to have a type, and is not considered to have the same
   declared type as any other entity, including another unlimited
   polymorphic entity.  Its dynamic type and type parameters are
   assumed from its effective argument.

Adding the INTERFACE in the code from comment #14 allows gfortran
to use the effective type in the function calls.

> > If we just continue to ignore this error, is is going to bite people sooner
> > or
> > later. And wehn somevody finds that a complex  MPI code no longer works, I
> > want
> > to have that warning in the build log.
> 
> A warning by default would be fine with me, especially when it can be turned
> off.  I am not happy to make this an error.
> (I may have a different opinion for a varying number of arguments to a
> procedure.)
> 
> > Also, this sort of code is a major obstacle for LTO, If we do not fix this,
> > then
> > I might as well give up on making gfortran LTO clean.
> 
> Is the current treatment only necessary for LTO?

Of course.  Thomas quoted a part of the standard that indicate 
the code is invalid Fortran.  I quoted a different line from the
standard that indicates the code is invalid Fortran.  gfortran
is informing the user the code is broken.

> Otherwise, can procedures without explicit interfaces be marked that they
> are not eligible to this kind of optimization?

It seems that you missed an important aspect of Thomas's patch.  It
allows one to find suspect subprogram references when the subprograms
are implicitly defined.  Go read the first 6 comments in the PR.
Jurgen had a bug in his code.  Thomas's patch generated an error 
pointing to the problem.  With Jurgen's code, there is a big difference
in passing a double precision value as opposed to the desired quad
precision value.

I'm having a hard time understanding why you think gfortran should
continue to silently compile invalid, and possibly broken, code
instead of actually alerting a user of an issue.  I'm having an
even harder time understanding why you want to have the ability
to completely disable the

[Bug middle-end/91433] Performance Regression when upgrading from 8.3.0 to 9.0

2019-09-02 Thread mc_george123 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91433

--- Comment #3 from George Fan  ---
Pls help.

[Bug target/91494] Performance Regression when upgrading from 8.3.0 to 9.0

2019-09-02 Thread mc_george123 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91494

--- Comment #1 from George Fan  ---
Please help.

[Bug fortran/91589] [9/10 Regression] ICE in gfc_conv_component_ref, at fortran/trans-expr.c:2447

2019-09-02 Thread pault at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91589

--- Comment #2 from Paul Thomas  ---
Author: pault
Date: Mon Sep  2 19:54:02 2019
New Revision: 275324

URL: https://gcc.gnu.org/viewcvs?rev=275324=gcc=rev
Log:
2019-09-02  Paul Thomas  

PR fortran/91589
* primary.c (gfc_match_varspec): Return MATCH_NO on an apparent
component ref, when the primary type is intrinsic.

2019-09-02  Paul Thomas  

PR fortran/91589
* gfortran.dg/pr91589.f90 : New test.


Added:
trunk/gcc/testsuite/gfortran.dg/pr91589.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/primary.c
trunk/gcc/testsuite/ChangeLog

[Bug fortran/91641] [9/10 Regression] ICE in gfc_conv_is_contiguous_expr, at fortran/trans-intrinsic.c:2857

2019-09-02 Thread anlauf at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91641

anlauf at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever confirmed|0   |1

[Bug fortran/91641] [9/10 Regression] ICE in gfc_conv_is_contiguous_expr, at fortran/trans-intrinsic.c:2857

2019-09-02 Thread anlauf at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91641

anlauf at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P4
   Last reconfirmed||2019-9-2
 CC||anlauf at gcc dot gnu.org

--- Comment #1 from anlauf at gcc dot gnu.org ---
Not really a regression as IS_CONTIGUOUS was added in 9.0

[Bug fortran/91556] Problems with better interface checking

2019-09-02 Thread anlauf at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91556

--- Comment #23 from anlauf at gcc dot gnu.org ---
(In reply to Thomas Koenig from comment #22)
> A problem with such code is that type violations like that are likely to
> cause
> actual wrong code issues because much of the aliasing analysis is type
> based...
> 
> What I could do is to
> 
> a) restrict the number of warnings for each routine to one (put a flag
>Into the gsym)
> 
> b) try to figure something out to make this harmless to the middle end...
> like
>passing a void* instead of a reference.

I do see that there was a motivation for the change.  However, I think that
the resolution happens at the wrong time and comes to wrong conclusions.

The example in comment#14 compiles if I add e.g.

  interface
 subroutine my_mpi_bcast_wrapper (buffer, len)
   type(*), dimension(..) :: buffer
   integer, intent(in):: len
 end subroutine my_mpi_bcast_wrapper
  end interface

which I think is the appropriate explicit interface *if* it needs to be
explicitly given.  Then the code compiles without any warnings.

> If we just continue to ignore this error, is is going to bite people sooner
> or
> later. And wehn somevody finds that a complex  MPI code no longer works, I
> want
> to have that warning in the build log.

A warning by default would be fine with me, especially when it can be turned
off.  I am not happy to make this an error.
(I may have a different opinion for a varying number of arguments to a
procedure.)

> Also, this sort of code is a major obstacle for LTO, If we do not fix this,
> then
> I might as well give up on making gfortran LTO clean.

Is the current treatment only necessary for LTO?

How does LTO handle TYPE(*) etc.?  It has to be able to deal with it!

Otherwise, can procedures without explicit interfaces be marked that they
are not eligible to this kind of optimization?

[Bug fortran/91643] New: [10 Regression] ICE in gfc_trans_create_temp_array, at fortran/trans-array.c:1265

2019-09-02 Thread gs...@t-online.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91643

Bug ID: 91643
   Summary: [10 Regression] ICE in gfc_trans_create_temp_array, at
fortran/trans-array.c:1265
   Product: gcc
   Version: 10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: gs...@t-online.de
  Target Milestone: ---

Changed between 20190512 and 20190519 at -O[123] :


$ cat z1.f90
program p
   real :: z(3) = [1.0, 2.0, 3.0]
   call g(z)
contains
   subroutine g(x)
  real :: x(..)
  call h(x)
   end
   subroutine h(x)
  real :: x(*)
  print *, x(1)
   end
end


$ gfortran-10-20190512 z1.f90 -O2 && ./a.out
   1.


$ gfortran-10-20190901 -c z1.f90 -O2
z1.f90:7:0:

7 |   call h(x)
  |
internal compiler error: in gfc_trans_create_temp_array, at
fortran/trans-array.c:1265
0x6cbb08 gfc_trans_create_temp_array(stmtblock_t*, stmtblock_t*, gfc_ss*,
tree_node*, tree_node*, bool, bool, bool, locus*)
../../gcc/fortran/trans-array.c:1265
0x6d61d2 gfc_conv_loop_setup(gfc_loopinfo*, locus*)
../../gcc/fortran/trans-array.c:5234
0x6f8bfe gfc_conv_subref_array_arg(gfc_se*, gfc_expr*, int, sym_intent, bool,
gfc_symbol const*, char const*, gfc_symbol*, bool)
../../gcc/fortran/trans-expr.c:4670
0x6dd819 gfc_conv_array_parameter(gfc_se*, gfc_expr*, bool, gfc_symbol const*,
char const*, tree_node**)
../../gcc/fortran/trans-array.c:8136
0x6fc518 gfc_conv_procedure_call(gfc_se*, gfc_symbol*, gfc_actual_arglist*,
gfc_expr*, vec*)
../../gcc/fortran/trans-expr.c:6158
0x732418 gfc_trans_call(gfc_code*, bool, tree_node*, tree_node*, bool)
../../gcc/fortran/trans-stmt.c:406
0x6c4df1 trans_code
../../gcc/fortran/trans.c:1920
0x6ed7a4 gfc_generate_function_code(gfc_namespace*)
../../gcc/fortran/trans-decl.c:6779
0x6ed5a4 gfc_generate_contained_functions
../../gcc/fortran/trans-decl.c:5783
0x6ed5a4 gfc_generate_function_code(gfc_namespace*)
../../gcc/fortran/trans-decl.c:6711
0x6775be translate_all_program_units
../../gcc/fortran/parse.c:6253
0x6775be gfc_parse_file()
../../gcc/fortran/parse.c:6492
0x6c14bf gfc_be_parse_file
../../gcc/fortran/f95-lang.c:204

[Bug fortran/91642] New: ICE: Bad IO basetype (transfer_expr, at fortran/trans-io.c:2507)

2019-09-02 Thread gs...@t-online.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91642

Bug ID: 91642
   Summary: ICE: Bad IO basetype (transfer_expr, at
fortran/trans-io.c:2507)
   Product: gcc
   Version: 10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: gs...@t-online.de
  Target Milestone: ---

Affects versions down to at least gfortran-5 :


$ cat z1.f90
program p
   integer :: iol
   inquire (iolength=iol) null()   ! no dedicated length
   print *, iol
end


$ gfortran-10-20190901 -c z1.f90
f951: internal compiler error: Bad IO basetype (0)
0x61c001 gfc_internal_error(char const*, ...)
../../gcc/fortran/error.c:1363
0x720129 transfer_expr
../../gcc/fortran/trans-io.c:2507
0x723730 gfc_trans_transfer(gfc_code*)
../../gcc/fortran/trans-io.c:2661
0x6c4cd7 trans_code
../../gcc/fortran/trans.c:2072
0x7211fe build_dt
../../gcc/fortran/trans-io.c:2026
0x6c4cc7 trans_code
../../gcc/fortran/trans.c:2048
0x6ed7a4 gfc_generate_function_code(gfc_namespace*)
../../gcc/fortran/trans-decl.c:6779
0x6775be translate_all_program_units
../../gcc/fortran/parse.c:6253
0x6775be gfc_parse_file()
../../gcc/fortran/parse.c:6492
0x6c14bf gfc_be_parse_file
../../gcc/fortran/f95-lang.c:204

[Bug fortran/91641] New: [9/10 Regression] ICE in gfc_conv_is_contiguous_expr, at fortran/trans-intrinsic.c:2857

2019-09-02 Thread gs...@t-online.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91641

Bug ID: 91641
   Summary: [9/10 Regression] ICE in gfc_conv_is_contiguous_expr,
at fortran/trans-intrinsic.c:2857
   Product: gcc
   Version: 10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: gs...@t-online.de
  Target Milestone: ---

Changed between 20190106 (silently accepted) and 20190113 (ICE).
(null() is not an array)


$ cat z1.f90
program p
   real, pointer :: z(:)
   print *, is_contiguous (null(z))
end


$ gfortran-9-20190106 -c z1.f90
$
$ gfortran-10-20190901 -c z1.f90
z1.f90:3:0:

3 |print *, is_contiguous (null(z))
  |
internal compiler error: in gfc_conv_is_contiguous_expr, at
fortran/trans-intrinsic.c:2857
0x713d4b gfc_conv_is_contiguous_expr(gfc_se*, gfc_expr*)
../../gcc/fortran/trans-intrinsic.c:2857
0x71cc00 gfc_conv_intrinsic_is_contiguous
../../gcc/fortran/trans-intrinsic.c:2836
0x71cc00 gfc_conv_intrinsic_function(gfc_se*, gfc_expr*)
../../gcc/fortran/trans-intrinsic.c:10096
0x701414 gfc_conv_function_expr
../../gcc/fortran/trans-expr.c:7460
0x6f47ea gfc_conv_expr(gfc_se*, gfc_expr*)
../../gcc/fortran/trans-expr.c:8587
0x6fb175 gfc_conv_expr_reference(gfc_se*, gfc_expr*, bool)
../../gcc/fortran/trans-expr.c:8732
0x723717 gfc_trans_transfer(gfc_code*)
../../gcc/fortran/trans-io.c:2582
0x6c4cd7 trans_code
../../gcc/fortran/trans.c:2072
0x7211fe build_dt
../../gcc/fortran/trans-io.c:2026
0x6c4cb7 trans_code
../../gcc/fortran/trans.c:2044
0x6ed7a4 gfc_generate_function_code(gfc_namespace*)
../../gcc/fortran/trans-decl.c:6779
0x6775be translate_all_program_units
../../gcc/fortran/parse.c:6253
0x6775be gfc_parse_file()
../../gcc/fortran/parse.c:6492
0x6c14bf gfc_be_parse_file
../../gcc/fortran/f95-lang.c:204

[Bug fortran/91640] New: [9/10 Regression] ICE: gimplification failed (contiguous expr)

2019-09-02 Thread gs...@t-online.de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91640

Bug ID: 91640
   Summary: [9/10 Regression] ICE: gimplification failed
(contiguous expr)
   Product: gcc
   Version: 10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: gs...@t-online.de
  Target Milestone: ---

Changed between 20190113 and 20190120.
For reference a z0_verify.f90 :

program p
   real :: z(3) = 1.0
   print *, is_contiguous(z)
   print *, is_contiguous(-z)
   print *, is_contiguous(2.0*z)
end

$ gfortran-10-20190901 z0_verify.f90 && ./a.out
 T
 T
 T


Test cases :

$ cat z1.f90
program p
   real :: z(3) = 1.0
   call sub (-z)
contains
   subroutine sub (x)
  real, contiguous :: x(:)
   end
end

$ cat z2.f90
program p
   real :: z(3) = 1.0
   call sub (2.0*z)
contains
   subroutine sub (x)
  real, contiguous :: x(:)
   end
end


$ gfortran-9-20190113 -c z1.f90
$
$ gfortran-10-20190901 -c z1.f90
gimplification failed:
-_7 
unit-size 
align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7fcd729992a0 precision:32
pointer_to_this >

arg:0 

def_stmt _7 = z[_6];
version:7>
z1.f90:3:0 start: z1.f90:3:0 finish: z1.f90:3:0>
z1.f90:3:0:

3 |call sub (-z)
  |
internal compiler error: gimplification failed
0x9f6051 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
../../gcc/gimplify.c:14144
0xa08c28 gimplify_modify_expr
../../gcc/gimplify.c:5747
0x9f5b0a gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
../../gcc/gimplify.c:13135
0x9f8d98 gimplify_stmt(tree_node**, gimple**)
../../gcc/gimplify.c:6779
0x9f4c0b gimplify_statement_list
../../gcc/gimplify.c:1849
0x9f4c0b gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
../../gcc/gimplify.c:13579
0x9f8d98 gimplify_stmt(tree_node**, gimple**)
../../gcc/gimplify.c:6779
0x9f54ec gimplify_and_add(tree_node*, gimple**)
../../gcc/gimplify.c:480
0x9f54ec gimplify_loop_expr
../../gcc/gimplify.c:1823
0x9f54ec gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
../../gcc/gimplify.c:13340
0x9f8d98 gimplify_stmt(tree_node**, gimple**)
../../gcc/gimplify.c:6779
0x9f4c0b gimplify_statement_list
../../gcc/gimplify.c:1849
0x9f4c0b gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
../../gcc/gimplify.c:13579
0x9f8d98 gimplify_stmt(tree_node**, gimple**)
../../gcc/gimplify.c:6779
0x9f9f03 gimplify_bind_expr
../../gcc/gimplify.c:1417
0x9f4e42 gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
../../gcc/gimplify.c:13336
0x9f8d98 gimplify_stmt(tree_node**, gimple**)
../../gcc/gimplify.c:6779
0x9f4c0b gimplify_statement_list
../../gcc/gimplify.c:1849
0x9f4c0b gimplify_expr(tree_node**, gimple**, gimple**, bool (*)(tree_node*),
int)
../../gcc/gimplify.c:13579
0x9f8d98 gimplify_stmt(tree_node**, gimple**)
../../gcc/gimplify.c:6779

[Bug c/53075] -Werror=pedantic should be equivalent to -pedantic-errors

2019-09-02 Thread manu at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53075

--- Comment #5 from Manuel López-Ibáñez  ---
(In reply to Kamlesh Kumar from comment #4)
> This patch resolves this.

No, it doesn't.

As the documentation says: -pedantic-errors is not equivalent to
@option{-Werror=pedantic}, since there are errors enabled by this option
and not enabled by the latter and vice versa.

According to the discussion in the email threads above, it is not possible to
make them equivalent, one would need to create a new options for everything
that is in the disjoint set of -pedantic-errors and -Werror=pedantic (but there
may be some bugs worth fixing there to reduce this set).

In any case, patches are sent to gcc-patches:
https://gcc.gnu.org/wiki/GettingStarted#Basics:_Contributing_to_GCC_in_10_easy_steps

[Bug fortran/91552] ICE with valid array constructor

2019-09-02 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91552

kargl at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
   Target Milestone|--- |9.3

--- Comment #5 from kargl at gcc dot gnu.org ---
Fixed on trunk and 9-branch.

[Bug fortran/91552] ICE with valid array constructor

2019-09-02 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91552

--- Comment #4 from kargl at gcc dot gnu.org ---
Author: kargl
Date: Mon Sep  2 17:16:05 2019
New Revision: 275323

URL: https://gcc.gnu.org/viewcvs?rev=275323=gcc=rev
Log:
2019-09-02  Steven G. Kargl  

PR fortran/91552
* array.c (walk_array_constructor): New function.
(gfc_match_array_constructor): Use it.

2019-09-02  Steven G. Kargl  

PR fortran/91552
* gfortran.dg/pr91552.f90: New test.

Added:
branches/gcc-9-branch/gcc/testsuite/gfortran.dg/pr91552.f90
Modified:
branches/gcc-9-branch/gcc/fortran/ChangeLog
branches/gcc-9-branch/gcc/fortran/array.c
branches/gcc-9-branch/gcc/testsuite/ChangeLog

[Bug target/91604] [10 Regression] ICE in extract_insn at recog.c:2310 since r272323

2019-09-02 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91604

Jakub Jelinek  changed:

   What|Removed |Added

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

--- Comment #4 from Jakub Jelinek  ---
Created attachment 46799
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46799=edit
gcc10-pr91604.patch

I can reproduce if I pass -msse2, otherwise I couldn't.

Anyway, the problem with this set of command line options is that when
adjust_address_1 calls change_address_1, it will do:
417  /* By passing constant addresses through registers
418 we get a chance to cse them.  */
419  if (! cse_not_expected && CONSTANT_P (x) && CONSTANT_ADDRESS_P (x))
420x = force_reg (address_mode, x);
As split_double_mode does that separately for each MEM, we end up with
different addresses between what is supposed to be a matching MEM, only some
later CSE would optimize it back again, but we run into the recog failure
before that.

The attached patch fixes it by special casing it in split_double_mode, if we
have a rtx_equal_p MEM operand, reuse the previously split operand rather than
create it again.  Assumes at most one matching MEM, which is I think generally
the case in the backend.

[Bug fortran/91552] ICE with valid array constructor

2019-09-02 Thread kargl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91552

--- Comment #3 from kargl at gcc dot gnu.org ---
Author: kargl
Date: Mon Sep  2 16:46:54 2019
New Revision: 275322

URL: https://gcc.gnu.org/viewcvs?rev=275322=gcc=rev
Log:
2019-09-02  Steven G. Kargl  

PR fortran/91552
* array.c (walk_array_constructor): New function.
(gfc_match_array_constructor): Use it.

2019-09-02  Steven G. Kargl  

PR fortran/91552
* gfortran.dg/pr91552.f90: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/pr91552.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/array.c
trunk/gcc/testsuite/ChangeLog

[Bug tree-optimization/91625] FAIL: gcc.dg/strlenopt-68.c execution test

2019-09-02 Thread dave.anglin at bell dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91625

--- Comment #2 from dave.anglin at bell dot net ---
On 2019-09-01 8:08 p.m., msebor at gcc dot gnu.org wrote:
> What value does the function return at runtime?
By default, snprintf on HP-UX returns a negative value if maxsize is smaller
than the number of characters
formatted excluding the terminating null but.  This changed in UNIX 2003 to the
number of characters
that would have been written.  Only HP-UX 11.31 for HPPA supports the 2003
behavior.  Since the whole
test is to verify the behavior of snprintf (0, 0, "%s", I think we might as
well skip it on hppa*-*-hpux*.

[Bug c++/91155] __PRETTY_FUNCTION__ gets truncated when char template parameter is '\0'

2019-09-02 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91155

Martin Liška  changed:

   What|Removed |Added

  Known to work|9.2.0   |9.2.1

--- Comment #11 from Martin Liška  ---
(In reply to Daniel Frey from comment #10)
> Thanks for working on this.
> 
> I'm a bit confused about the "Known to work: 9.2.0" - shouldn't this be
> 9.3.0 given that GCC 9.2 was already released and does not contain this fix?

Yes, sorry for the noise.

[Bug target/91635] wrong code at -O2 with __builtin_add_overflow() and shifts

2019-09-02 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91635

Jakub Jelinek  changed:

   What|Removed |Added

 CC||andrew at sifive dot com,
   ||kito at gcc dot gnu.org,
   ||palmer at gcc dot gnu.org,
   ||wilson at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek  ---
Looks like a backend bug to me.

Trying 12, 13 -> 14:
   12: r85:SI=r72:DI#0<<0x1
  REG_DEAD r72:DI
   13: r76:DI=zero_extend(r85:SI#0)
  REG_DEAD r85:SI
   14: r87:SI=r76:DI#0 0>>0x1
  REG_DEAD r76:DI
Failed to match this instruction:
(set (subreg:DI (reg:SI 87) 0)
(and:DI (reg:DI 72 [ _1 ])
(const_int 32767 [0x7fff])))
Splitting with gen_split_35
Successfully matched this instruction:
(set (subreg:DI (reg:SI 87) 0)
(ashift:DI (reg:DI 72 [ _1 ])
(const_int 49 [0x31])))
Successfully matched this instruction:
(set (subreg:DI (reg:SI 87) 0)
(lshiftrt:DI (subreg:DI (reg:SI 87) 0)
(const_int 49 [0x31])))

That splitting through gen_split_35 is incorrect in reusing the paradoxical
subreg destination for the intermediate result, because in a paradoxical subreg
the high bits are undefined, while the splitter relies on them being defined.

--- gcc/config/riscv/riscv.md.jj2019-07-08 23:52:53.0 +0200
+++ gcc/config/riscv/riscv.md   2019-09-02 17:18:26.909424288 +0200
@@ -1770,15 +1770,17 @@
   [(set (match_operand:GPR 0 "register_operand")
(and:GPR (match_operand:GPR 1 "register_operand")
 (match_operand:GPR 2 "p2m1_shift_operand")))]
-  ""
- [(set (match_dup 0)
+  "can_create_pseudo_p () || !paradoxical_subreg_p (operands[0])"
+ [(set (match_dup 3)
(ashift:GPR (match_dup 1) (match_dup 2)))
   (set (match_dup 0)
-   (lshiftrt:GPR (match_dup 0) (match_dup 2)))]
+   (lshiftrt:GPR (match_dup 3) (match_dup 2)))]
 {
   /* Op2 is a VOIDmode constant, so get the mode size from op1.  */
   operands[2] = GEN_INT (GET_MODE_BITSIZE (GET_MODE (operands[1]))
 - exact_log2 (INTVAL (operands[2]) + 1));
+  operands[3]
+= can_create_pseudo_p () ? gen_reg_rtx (mode) : operands[0];
 })

 ;; Handle AND with 0xF...F0...0 where there are 32 to 63 zeros.  This can be
@@ -1787,13 +1789,15 @@
   [(set (match_operand:DI 0 "register_operand")
(and:DI (match_operand:DI 1 "register_operand")
(match_operand:DI 2 "high_mask_shift_operand")))]
-  "TARGET_64BIT"
-  [(set (match_dup 0)
+  "TARGET_64BIT
+   && (can_create_pseudo_p () || !paradoxical_subreg_p (operands[0]))"
+  [(set (match_dup 3)
(lshiftrt:DI (match_dup 1) (match_dup 2)))
(set (match_dup 0)
-   (ashift:DI (match_dup 0) (match_dup 2)))]
+   (ashift:DI (match_dup 3) (match_dup 2)))]
 {
   operands[2] = GEN_INT (ctz_hwi (INTVAL (operands[2])));
+  operands[3] = can_create_pseudo_p () ? gen_reg_rtx (DImode) : operands[0];
 })

 ;;

fixes this, but I don't have a way to test riscv, plus the backend has several
similar problems elsewhere.

[Bug target/91635] wrong code at -O2 with __builtin_add_overflow() and shifts

2019-09-02 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91635

Jakub Jelinek  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2019-09-02
 Ever confirmed|0   |1

[Bug tree-optimization/91616] Incorrect data address computation in very simple code

2019-09-02 Thread mpoulhies at kalray dot eu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91616

--- Comment #3 from Marc POULHIÈS  ---
Ok, sorry for the incorrect report.

The problem was found in our port of GCC where the code actually really
accesses an incorrect memory location and seeing this very large offset added
to data array lead me to an incorrect conclusion.

You can close this PR.

[Bug c++/91155] __PRETTY_FUNCTION__ gets truncated when char template parameter is '\0'

2019-09-02 Thread d.frey at gmx dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91155

--- Comment #10 from Daniel Frey  ---
Thanks for working on this.

I'm a bit confused about the "Known to work: 9.2.0" - shouldn't this be 9.3.0
given that GCC 9.2 was already released and does not contain this fix?

[Bug preprocessor/91639] New: [10 Regression] FAIL: gcc.dg/plugin/location-overflow-test-pr83173.c -fplugin=./location_overflo w_plugin.so scan-file-not # (?!1 [^\r\n]+location-overflow-test-pr83173-

2019-09-02 Thread danglin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91639

Bug ID: 91639
   Summary: [10 Regression] FAIL:
gcc.dg/plugin/location-overflow-test-pr83173.c
-fplugin=./location_overflo w_plugin.so  scan-file-not
# (?!1 [^\r\n]+location-overflow-test-pr83173-1.h" 1)
[0-9]+ [^\r\n]+location-overflow-test-pr83173-1.h"
   Product: gcc
   Version: 10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: preprocessor
  Assignee: unassigned at gcc dot gnu.org
  Reporter: danglin at gcc dot gnu.org
  Target Milestone: ---
  Host: hppa-unknown-linux-gnu
Target: hppa-unknown-linux-gnu
 Build: hppa-unknown-linux-gnu

spawn -ignore SIGHUP /home/dave/gnu/gcc/objdir/gcc/xgcc
-B/home/dave/gnu/gcc/obj
dir/gcc/
/home/dave/gnu/gcc/gcc/gcc/testsuite/gcc.dg/plugin/location-overflow-te
st-pr83173.c -fno-diagnostics-show-caret -fno-diagnostics-show-line-numbers
-fdi
agnostics-color=never -fplugin=./location_overflow_plugin.so
-fplugin-arg-locati
on_overflow_plugin-value=0x6001 -E -o location-overflow-test-pr83173.i
PASS: gcc.dg/plugin/location-overflow-test-pr83173.c
-fplugin=./location_overflo
w_plugin.so (test for excess errors)
PASS: gcc.dg/plugin/location-overflow-test-pr83173.c
-fplugin=./location_overflo
w_plugin.so  scan-file # 1 [^\r\n]+location-overflow-test-pr83173-1.h" 1
FAIL: gcc.dg/plugin/location-overflow-test-pr83173.c
-fplugin=./location_overflo
w_plugin.so  scan-file-not # (?!1 [^\r\n]+location-overflow-test-pr83173-1.h"
1)
[0-9]+ [^\r\n]+location-overflow-test-pr83173-1.h"

r274926 was okay.  This is with r275110.

[Bug c/53075] -Werror=pedantic should be equivalent to -pedantic-errors

2019-09-02 Thread kamleshbhalui at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53075

Kamlesh Kumar  changed:

   What|Removed |Added

 CC||kamleshbhalui at gmail dot com

--- Comment #4 from Kamlesh Kumar  ---
This patch resolves this.

diff --git a/gcc/opts.c b/gcc/opts.c
index 1417dba..2e71fef 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -3212,7 +3212,7 @@ option_name (diagnostic_context *context, int
option_index,
   if (option_index)
 {
   /* A warning classified as an error.  */
-  if ((orig_diag_kind == DK_WARNING || orig_diag_kind == DK_PEDWARN)
+  if ((context->pedantic_errors || orig_diag_kind == DK_WARNING ||
orig_diag_kind == DK_PEDWARN)
  && diag_kind == DK_ERROR)
return concat (cl_options[OPT_Werror_].opt_text,
   /* Skip over "-W".  */

[Bug target/91635] wrong code at -O2 with __builtin_add_overflow()

2019-09-02 Thread zsojka at seznam dot cz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91635

--- Comment #2 from Zdenek Sojka  ---
(In reply to Jakub Jelinek from comment #1)
> Can't reproduce.
> I get:
> foo:
> not a4,a0
> lui a5,%hi(b)
> sllia0,a0,17
> sh  a4,%lo(b)(a5)
> srlia0,a0,17
> ret
> at -O2 which looks correct.

Thank you for checking this.
I can reproduce the failure with a "native" gcc-9.2.0-gentoo in a chroot.
I get the same result as you with -mabi=ilp32 ; perhaps you were compiling for
the 32bit target?

Please try adding -mabi=lp64d -march=rv64gc to the command line.

[Bug middle-end/91605] [10 Regression] ICE in ix86_avx256_split_vector_move_misalign, at config/i386/i386-expand.c:489 since r274986

2019-09-02 Thread edlinger at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91605

--- Comment #3 from Bernd Edlinger  ---
Author: edlinger
Date: Mon Sep  2 14:26:26 2019
New Revision: 275320

URL: https://gcc.gnu.org/viewcvs?rev=275320=gcc=rev
Log:
2019-09-02  Bernd Edlinger  

PR middle-end/91605
* expr.c (addr_expr_of_non_mem_decl_p_1): Refactor into...
(non_mem_decl_p): ...this.
(mem_ref_refers_to_non_mem_p): Handle DECL_P as well ase MEM_REF.
(expand_assignment): Call mem_ref_referes_to_non_mem_p
unconditionally as before.

testsuite:
2019-09-02  Bernd Edlinger  

PR middle-end/91605
* g++.target/i386/pr91605.C: New test.

Added:
trunk/gcc/testsuite/g++.target/i386/pr91605.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/expr.c
trunk/gcc/testsuite/ChangeLog

[Bug tree-optimization/89572] [7 Regression] ICE in dyn_cast(gimple*) / get_loop_exit_condition(loop const*)

2019-09-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89572

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||7.4.1
 Resolution|--- |FIXED

--- Comment #7 from Richard Biener  ---
Fixed.

[Bug c++/89392] [7 Regression] ICE in bitmap_bit_p, at bitmap.c:978

2019-09-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89392

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||7.4.1
 Resolution|--- |FIXED

--- Comment #10 from Richard Biener  ---
Fixed.

[Bug tree-optimization/89710] [7 Regression] ICE in dyn_cast(gimple*) / should_duplicate_loop_header_p

2019-09-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89710

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||7.4.1
 Resolution|--- |FIXED

--- Comment #8 from Richard Biener  ---
Fixed.

[Bug middle-end/24639] [meta-bug] bug to track all Wuninitialized issues

2019-09-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=24639
Bug 24639 depends on bug 89296, which changed state.

Bug 89296 Summary: [7 Regression] tree copy-header masking uninitialized warning
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89296

   What|Removed |Added

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

[Bug target/91638] New: powerpc -mlong-double-NN (documentation) issues

2019-09-02 Thread segher at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91638

Bug ID: 91638
   Summary: powerpc -mlong-double-NN (documentation) issues
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: segher at gcc dot gnu.org
  Target Milestone: ---

The -mlong-double-64 and -mlong-double-128 command line options aren't
documented.

The -Q --help=target output shows
  -mlong-double-[64,128]127
which is a bit confusing (it only allows setting it to 64 and 128; 127
and 129 have an internal meaning, but the user shouldn't see it, ideally).

[Bug tree-optimization/89710] [7 Regression] ICE in dyn_cast(gimple*) / should_duplicate_loop_header_p

2019-09-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89710

--- Comment #7 from Richard Biener  ---
Author: rguenth
Date: Mon Sep  2 14:14:14 2019
New Revision: 275319

URL: https://gcc.gnu.org/viewcvs?rev=275319=gcc=rev
Log:
2019-09-02  Richard Biener  

Backport from mainline
2019-03-14  Richard Biener  

PR tree-optimization/89710
* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
safe_dyn_cast.

* gcc.dg/torture/pr89710.c: New testcase.

2019-03-14  Richard Biener  

PR middle-end/89572
* tree-scalar-evolution.c (get_loop_exit_condition): Use
safe_dyn_cast.
* tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
Use gimple_location_safe.

* gcc.dg/torture/pr89572.c: New testcase.

2019-02-18  Richard Biener  

PR tree-optimization/89296
* tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
of no-warning flag to cases that might emit the bogus warning.

* gcc.dg/uninit-pr89296.c: New testcase.

2019-02-21  Richard Biener  

PR middle-end/89392
cp/
* vtable-class-hierarchy.c (vtv_generate_init_routine): Do not
make symtab process new functions here.

2019-01-31  Richard Biener  

PR tree-optimization/89135
* tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
with abnormal preds.

* gcc.dg/torture/pr89135.c: New testcase.

Added:
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89135.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89572.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89710.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/uninit-pr89296.c
Modified:
branches/gcc-7-branch/gcc/ChangeLog
branches/gcc-7-branch/gcc/cp/ChangeLog
branches/gcc-7-branch/gcc/cp/vtable-class-hierarchy.c
branches/gcc-7-branch/gcc/testsuite/ChangeLog
branches/gcc-7-branch/gcc/tree-scalar-evolution.c
branches/gcc-7-branch/gcc/tree-ssa-loop-ch.c
branches/gcc-7-branch/gcc/tree-ssa-loop-ivcanon.c
branches/gcc-7-branch/gcc/tree-ssa-phiprop.c

[Bug tree-optimization/89296] [7 Regression] tree copy-header masking uninitialized warning

2019-09-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89296

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||7.4.1
 Resolution|--- |FIXED
  Known to fail||7.4.0

--- Comment #9 from Richard Biener  ---
Fixed.

[Bug tree-optimization/89572] [7 Regression] ICE in dyn_cast(gimple*) / get_loop_exit_condition(loop const*)

2019-09-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89572

--- Comment #6 from Richard Biener  ---
Author: rguenth
Date: Mon Sep  2 14:14:14 2019
New Revision: 275319

URL: https://gcc.gnu.org/viewcvs?rev=275319=gcc=rev
Log:
2019-09-02  Richard Biener  

Backport from mainline
2019-03-14  Richard Biener  

PR tree-optimization/89710
* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
safe_dyn_cast.

* gcc.dg/torture/pr89710.c: New testcase.

2019-03-14  Richard Biener  

PR middle-end/89572
* tree-scalar-evolution.c (get_loop_exit_condition): Use
safe_dyn_cast.
* tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
Use gimple_location_safe.

* gcc.dg/torture/pr89572.c: New testcase.

2019-02-18  Richard Biener  

PR tree-optimization/89296
* tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
of no-warning flag to cases that might emit the bogus warning.

* gcc.dg/uninit-pr89296.c: New testcase.

2019-02-21  Richard Biener  

PR middle-end/89392
cp/
* vtable-class-hierarchy.c (vtv_generate_init_routine): Do not
make symtab process new functions here.

2019-01-31  Richard Biener  

PR tree-optimization/89135
* tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
with abnormal preds.

* gcc.dg/torture/pr89135.c: New testcase.

Added:
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89135.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89572.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89710.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/uninit-pr89296.c
Modified:
branches/gcc-7-branch/gcc/ChangeLog
branches/gcc-7-branch/gcc/cp/ChangeLog
branches/gcc-7-branch/gcc/cp/vtable-class-hierarchy.c
branches/gcc-7-branch/gcc/testsuite/ChangeLog
branches/gcc-7-branch/gcc/tree-scalar-evolution.c
branches/gcc-7-branch/gcc/tree-ssa-loop-ch.c
branches/gcc-7-branch/gcc/tree-ssa-loop-ivcanon.c
branches/gcc-7-branch/gcc/tree-ssa-phiprop.c

[Bug c++/89392] [7 Regression] ICE in bitmap_bit_p, at bitmap.c:978

2019-09-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89392

--- Comment #9 from Richard Biener  ---
Author: rguenth
Date: Mon Sep  2 14:14:14 2019
New Revision: 275319

URL: https://gcc.gnu.org/viewcvs?rev=275319=gcc=rev
Log:
2019-09-02  Richard Biener  

Backport from mainline
2019-03-14  Richard Biener  

PR tree-optimization/89710
* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
safe_dyn_cast.

* gcc.dg/torture/pr89710.c: New testcase.

2019-03-14  Richard Biener  

PR middle-end/89572
* tree-scalar-evolution.c (get_loop_exit_condition): Use
safe_dyn_cast.
* tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
Use gimple_location_safe.

* gcc.dg/torture/pr89572.c: New testcase.

2019-02-18  Richard Biener  

PR tree-optimization/89296
* tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
of no-warning flag to cases that might emit the bogus warning.

* gcc.dg/uninit-pr89296.c: New testcase.

2019-02-21  Richard Biener  

PR middle-end/89392
cp/
* vtable-class-hierarchy.c (vtv_generate_init_routine): Do not
make symtab process new functions here.

2019-01-31  Richard Biener  

PR tree-optimization/89135
* tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
with abnormal preds.

* gcc.dg/torture/pr89135.c: New testcase.

Added:
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89135.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89572.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89710.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/uninit-pr89296.c
Modified:
branches/gcc-7-branch/gcc/ChangeLog
branches/gcc-7-branch/gcc/cp/ChangeLog
branches/gcc-7-branch/gcc/cp/vtable-class-hierarchy.c
branches/gcc-7-branch/gcc/testsuite/ChangeLog
branches/gcc-7-branch/gcc/tree-scalar-evolution.c
branches/gcc-7-branch/gcc/tree-ssa-loop-ch.c
branches/gcc-7-branch/gcc/tree-ssa-loop-ivcanon.c
branches/gcc-7-branch/gcc/tree-ssa-phiprop.c

[Bug tree-optimization/89135] [7 Regression] internal compiler error: in gimple_split_edge, at tree-cfg.c:2747

2019-09-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89135

--- Comment #8 from Richard Biener  ---
Author: rguenth
Date: Mon Sep  2 14:14:14 2019
New Revision: 275319

URL: https://gcc.gnu.org/viewcvs?rev=275319=gcc=rev
Log:
2019-09-02  Richard Biener  

Backport from mainline
2019-03-14  Richard Biener  

PR tree-optimization/89710
* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
safe_dyn_cast.

* gcc.dg/torture/pr89710.c: New testcase.

2019-03-14  Richard Biener  

PR middle-end/89572
* tree-scalar-evolution.c (get_loop_exit_condition): Use
safe_dyn_cast.
* tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
Use gimple_location_safe.

* gcc.dg/torture/pr89572.c: New testcase.

2019-02-18  Richard Biener  

PR tree-optimization/89296
* tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
of no-warning flag to cases that might emit the bogus warning.

* gcc.dg/uninit-pr89296.c: New testcase.

2019-02-21  Richard Biener  

PR middle-end/89392
cp/
* vtable-class-hierarchy.c (vtv_generate_init_routine): Do not
make symtab process new functions here.

2019-01-31  Richard Biener  

PR tree-optimization/89135
* tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
with abnormal preds.

* gcc.dg/torture/pr89135.c: New testcase.

Added:
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89135.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89572.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89710.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/uninit-pr89296.c
Modified:
branches/gcc-7-branch/gcc/ChangeLog
branches/gcc-7-branch/gcc/cp/ChangeLog
branches/gcc-7-branch/gcc/cp/vtable-class-hierarchy.c
branches/gcc-7-branch/gcc/testsuite/ChangeLog
branches/gcc-7-branch/gcc/tree-scalar-evolution.c
branches/gcc-7-branch/gcc/tree-ssa-loop-ch.c
branches/gcc-7-branch/gcc/tree-ssa-loop-ivcanon.c
branches/gcc-7-branch/gcc/tree-ssa-phiprop.c

[Bug tree-optimization/89296] [7 Regression] tree copy-header masking uninitialized warning

2019-09-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89296

--- Comment #8 from Richard Biener  ---
Author: rguenth
Date: Mon Sep  2 14:14:14 2019
New Revision: 275319

URL: https://gcc.gnu.org/viewcvs?rev=275319=gcc=rev
Log:
2019-09-02  Richard Biener  

Backport from mainline
2019-03-14  Richard Biener  

PR tree-optimization/89710
* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
safe_dyn_cast.

* gcc.dg/torture/pr89710.c: New testcase.

2019-03-14  Richard Biener  

PR middle-end/89572
* tree-scalar-evolution.c (get_loop_exit_condition): Use
safe_dyn_cast.
* tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
Use gimple_location_safe.

* gcc.dg/torture/pr89572.c: New testcase.

2019-02-18  Richard Biener  

PR tree-optimization/89296
* tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
of no-warning flag to cases that might emit the bogus warning.

* gcc.dg/uninit-pr89296.c: New testcase.

2019-02-21  Richard Biener  

PR middle-end/89392
cp/
* vtable-class-hierarchy.c (vtv_generate_init_routine): Do not
make symtab process new functions here.

2019-01-31  Richard Biener  

PR tree-optimization/89135
* tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
with abnormal preds.

* gcc.dg/torture/pr89135.c: New testcase.

Added:
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89135.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89572.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr89710.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/uninit-pr89296.c
Modified:
branches/gcc-7-branch/gcc/ChangeLog
branches/gcc-7-branch/gcc/cp/ChangeLog
branches/gcc-7-branch/gcc/cp/vtable-class-hierarchy.c
branches/gcc-7-branch/gcc/testsuite/ChangeLog
branches/gcc-7-branch/gcc/tree-scalar-evolution.c
branches/gcc-7-branch/gcc/tree-ssa-loop-ch.c
branches/gcc-7-branch/gcc/tree-ssa-loop-ivcanon.c
branches/gcc-7-branch/gcc/tree-ssa-phiprop.c

[Bug tree-optimization/89135] [7 Regression] internal compiler error: in gimple_split_edge, at tree-cfg.c:2747

2019-09-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89135

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||7.4.1
 Resolution|--- |FIXED
  Known to fail||7.4.0

--- Comment #7 from Richard Biener  ---
Fixed.

[Bug target/91635] wrong code at -O2 with __builtin_add_overflow()

2019-09-02 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91635

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek  ---
Can't reproduce.
I get:
foo:
not a4,a0
lui a5,%hi(b)
sllia0,a0,17
sh  a4,%lo(b)(a5)
srlia0,a0,17
ret
at -O2 which looks correct.

[Bug tree-optimization/83661] sincos does not handle sin(2x)

2019-09-02 Thread wilco at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83661

--- Comment #9 from Wilco  ---
(In reply to Christophe Monat from comment #4)
> Hi Pratamesh,
> 
> You're absolutely right - maybe it's more efficient when there is some
> hardware sincos available (Intel FSINCOS ?) but I would check also carefully
> the actual performance.

CISC hardware math instructions are laughably slow, there is never a reason to
consider them (https://www.sourceware.org/ml/libc-alpha/2019-03/msg00559.html).

> Indeed, it looks to me that either you have to use two different polynomials
> or shift one argument and use either sin or cos, but anyway twice.

The gain is due to sharing most of the code - you evaluate 2 polynomials, but
that's only few extra FMAs (which even on a single issue in-order will
perfectly parallelize given each polynomial is latency bound).

> We studied that in a slightly different context with Claude-Pierre Jeannerod
> from ENS Lyon and our PhD Jingyan Lu-Jourdan a while ago : "Simultaneous
> floating-point sine and cosine for VLIW integer processors" available here:
> https://hal.archives-ouvertes.fr/hal-00672327 and we were able to gain
> significant performance by exploiting the low-level parallelism of the
> processor. Agreed, this is not a full IEEE implementation but the important
> ideas are there.

Interesting paper!

[Bug target/80986] auto keyword variable lost its attributes

2019-09-02 Thread manjian2006 at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80986

--- Comment #8 from linzj  ---
(In reply to Anssi Hannula from comment #7)
> Created attachment 46772 [details]
> Simple testcase for the issue
> 
> The regression still exists on GCC trunk.
> 
> We also hit the issue with
> https://github.com/google/skia/blob/9318a6cfbcdd160151bc4ae36425563f8cf68d3e/
> src/opts/SkRasterPipeline_opts.h causing incorrect rendering.
> 
> Code is working correctly on: GCC 5.4.0, clang 6.0.1
> Not working correctly on: GCC 7.3.0 and GCC trunk r274958 (and GCC 6.3.0
> according to the original reporter)
> 
> Attached is a simple testcase that can be used with -std=c++11
> -mfloat-abi=softfp for ARM.
> Disassembly of main() shows the proper VLDR to s0 only for the latter
> "non-auto" call of func() when compiled with affected GCC.

Just set affects_type_identity  field like I did, it's okay.

[Bug go/91617] [10 regression] Many go test case failures after r275026

2019-09-02 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91617

Jakub Jelinek  changed:

   What|Removed |Added

 CC||marxin at gcc dot gnu.org

--- Comment #6 from Jakub Jelinek  ---
*** Bug 91632 has been marked as a duplicate of this bug. ***

[Bug tree-optimization/91632] [10 Regression] Probably wrong code since r275026

2019-09-02 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91632

Jakub Jelinek  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #2 from Jakub Jelinek  ---
Dup.

*** This bug has been marked as a duplicate of bug 91617 ***

[Bug tree-optimization/91632] [10 Regression] Probably wrong code since r275026

2019-09-02 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91632

--- Comment #1 from Jakub Jelinek  ---
Author: jakub
Date: Mon Sep  2 13:35:54 2019
New Revision: 275318

URL: https://gcc.gnu.org/viewcvs?rev=275318=gcc=rev
Log:
PR tree-optimization/91632
* gcc.c-torture/execute/pr91632.c: New test.

Added:
trunk/gcc/testsuite/gcc.c-torture/execute/pr91632.c
Modified:
trunk/gcc/testsuite/ChangeLog

[Bug target/91612] [10 regression][arm] gcc.target/arm/aapcs/align4.c ICE after r274986

2019-09-02 Thread clyon at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91612

--- Comment #3 from Christophe Lyon  ---
(In reply to Bernd Edlinger from comment #2)
> Created attachment 46792 [details]
> untested patch
> 
> This is a untested patch it should fix
> pr91612 pr91613 pr91615 (?)
> pr91603
> and pr91605 (i386)
> but probably not 91614

It doesn't fix pr91614 nor pr91615 :-(

It does fix pr91612.

I don't know yet for pr91613

[Bug tree-optimization/91162] [7 Regression] ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in useless_type_conversion_p, at gimple-expr.c:86 (error: invalid 'PHI' argument)

2019-09-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91162

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||7.4.1
 Resolution|--- |FIXED
  Known to fail||7.4.0

--- Comment #10 from Richard Biener  ---
Fixed.

[Bug tree-optimization/91200] ICE on valid code at -O1: verify_ssa failed

2019-09-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91200

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||7.4.1
 Resolution|--- |FIXED
   Target Milestone|--- |7.5

--- Comment #7 from Richard Biener  ---
Fixed.

[Bug middle-end/91131] Bad bitfield coalescing

2019-09-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91131

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||7.4.1
 Resolution|--- |FIXED
   Target Milestone|--- |7.5

--- Comment #16 from Richard Biener  ---
Fixed.

[Bug tree-optimization/91126] [7 regression] Incorrect constant propagation of BIT_FIELD_REF

2019-09-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91126

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||7.4.1
 Resolution|--- |FIXED
  Known to fail||7.4.0

--- Comment #13 from Richard Biener  ---
Fixed.

[Bug tree-optimization/90278] ICE: verify_gimple failed (error: statement marked for throw, but doesn't)

2019-09-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90278

Richard Biener  changed:

   What|Removed |Added

  Known to work||7.4.1
   Target Milestone|--- |7.5
  Known to fail||7.4.0

--- Comment #7 from Richard Biener  ---
Fixed.

[Bug tree-optimization/91200] ICE on valid code at -O1: verify_ssa failed

2019-09-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91200

--- Comment #6 from Richard Biener  ---
Author: rguenth
Date: Mon Sep  2 12:56:24 2019
New Revision: 275317

URL: https://gcc.gnu.org/viewcvs?rev=275317=gcc=rev
Log:
2019-09-02  Richard Biener  

Backport from mainline
2019-07-19  Richard Biener  

PR tree-optimization/91200
* tree-ssa-phiopt.c (cond_store_replacement): Check we have
no PHI nodes in middle-bb.

* gcc.dg/torture/pr91200.c: New testcase.

2019-07-15  Richard Biener  

PR middle-end/91162
* tree-cfg.c (move_block_to_fn): When releasing a virtual PHI
node make sure to replace all uses with something valid.

* gcc.dg/autopar/pr91162.c: New testcase.

2019-07-11  Richard Biener  

PR middle-end/91131
* gimplify.c (gimplify_compound_literal_expr): Force a temporary
when the object is volatile and we have not cleared it even though
there are no nonzero elements.

* gcc.target/i386/pr91131.c: New testcase.

2019-07-10  Richard Biener  

PR tree-optimization/91126
* tree-ssa-sccvn.c (n_walk_cb_data::push_partial_def): Adjust
native encoding offset for BYTES_BIG_ENDIAN.
(vn_reference_lookup_3): Likewise.

* gcc.dg/torture/pr91126.c: New testcase.

2019-07-10  Richard Biener  

PR tree-optimization/91126
* tree-ssa-sccvn.c (vn_reference_lookup_3): Adjust
native encoding offset for BYTES_BIG_ENDIAN.

* gcc.dg/torture/pr91126.c: New testcase.

2019-04-29  Richard Biener  

PR tree-optimization/90278
* tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
EH on comparison simplification.

* gcc.dg/torture/pr90278.c: New testcase.

2019-04-11  Richard Biener  

PR tree-optimization/90020
* tree-ssa-sccvn.c (vn_reference_may_trap): New function.
* tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
* tree-ssa-pre.c (compute_avail): Use it to not put
possibly trapping references after a call that might not
return into EXP_GEN.
* gcse.c (compute_hash_table_work): Do not elide
marking a block containing a call if the call might not
return.

* gcc.dg/torture/pr90020.c: New testcase.

Added:
branches/gcc-7-branch/gcc/testsuite/gcc.dg/autopar/pr91162.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr90020.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr90278.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr91126.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr91200.c
branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr91131.c
Modified:
branches/gcc-7-branch/gcc/ChangeLog
branches/gcc-7-branch/gcc/gcse.c
branches/gcc-7-branch/gcc/gimplify.c
branches/gcc-7-branch/gcc/testsuite/ChangeLog
branches/gcc-7-branch/gcc/tree-cfg.c
branches/gcc-7-branch/gcc/tree-ssa-forwprop.c
branches/gcc-7-branch/gcc/tree-ssa-phiopt.c
branches/gcc-7-branch/gcc/tree-ssa-pre.c
branches/gcc-7-branch/gcc/tree-ssa-sccvn.c
branches/gcc-7-branch/gcc/tree-ssa-sccvn.h

[Bug tree-optimization/91162] [7 Regression] ICE: tree check: expected class 'type', have 'exceptional' (error_mark) in useless_type_conversion_p, at gimple-expr.c:86 (error: invalid 'PHI' argument)

2019-09-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91162

--- Comment #9 from Richard Biener  ---
Author: rguenth
Date: Mon Sep  2 12:56:24 2019
New Revision: 275317

URL: https://gcc.gnu.org/viewcvs?rev=275317=gcc=rev
Log:
2019-09-02  Richard Biener  

Backport from mainline
2019-07-19  Richard Biener  

PR tree-optimization/91200
* tree-ssa-phiopt.c (cond_store_replacement): Check we have
no PHI nodes in middle-bb.

* gcc.dg/torture/pr91200.c: New testcase.

2019-07-15  Richard Biener  

PR middle-end/91162
* tree-cfg.c (move_block_to_fn): When releasing a virtual PHI
node make sure to replace all uses with something valid.

* gcc.dg/autopar/pr91162.c: New testcase.

2019-07-11  Richard Biener  

PR middle-end/91131
* gimplify.c (gimplify_compound_literal_expr): Force a temporary
when the object is volatile and we have not cleared it even though
there are no nonzero elements.

* gcc.target/i386/pr91131.c: New testcase.

2019-07-10  Richard Biener  

PR tree-optimization/91126
* tree-ssa-sccvn.c (n_walk_cb_data::push_partial_def): Adjust
native encoding offset for BYTES_BIG_ENDIAN.
(vn_reference_lookup_3): Likewise.

* gcc.dg/torture/pr91126.c: New testcase.

2019-07-10  Richard Biener  

PR tree-optimization/91126
* tree-ssa-sccvn.c (vn_reference_lookup_3): Adjust
native encoding offset for BYTES_BIG_ENDIAN.

* gcc.dg/torture/pr91126.c: New testcase.

2019-04-29  Richard Biener  

PR tree-optimization/90278
* tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
EH on comparison simplification.

* gcc.dg/torture/pr90278.c: New testcase.

2019-04-11  Richard Biener  

PR tree-optimization/90020
* tree-ssa-sccvn.c (vn_reference_may_trap): New function.
* tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
* tree-ssa-pre.c (compute_avail): Use it to not put
possibly trapping references after a call that might not
return into EXP_GEN.
* gcse.c (compute_hash_table_work): Do not elide
marking a block containing a call if the call might not
return.

* gcc.dg/torture/pr90020.c: New testcase.

Added:
branches/gcc-7-branch/gcc/testsuite/gcc.dg/autopar/pr91162.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr90020.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr90278.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr91126.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr91200.c
branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr91131.c
Modified:
branches/gcc-7-branch/gcc/ChangeLog
branches/gcc-7-branch/gcc/gcse.c
branches/gcc-7-branch/gcc/gimplify.c
branches/gcc-7-branch/gcc/testsuite/ChangeLog
branches/gcc-7-branch/gcc/tree-cfg.c
branches/gcc-7-branch/gcc/tree-ssa-forwprop.c
branches/gcc-7-branch/gcc/tree-ssa-phiopt.c
branches/gcc-7-branch/gcc/tree-ssa-pre.c
branches/gcc-7-branch/gcc/tree-ssa-sccvn.c
branches/gcc-7-branch/gcc/tree-ssa-sccvn.h

[Bug tree-optimization/90020] [7 regression] -O2 -Os x86-64 wrong code generated for GNU Emacs

2019-09-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90020

--- Comment #23 from Richard Biener  ---
Author: rguenth
Date: Mon Sep  2 12:56:24 2019
New Revision: 275317

URL: https://gcc.gnu.org/viewcvs?rev=275317=gcc=rev
Log:
2019-09-02  Richard Biener  

Backport from mainline
2019-07-19  Richard Biener  

PR tree-optimization/91200
* tree-ssa-phiopt.c (cond_store_replacement): Check we have
no PHI nodes in middle-bb.

* gcc.dg/torture/pr91200.c: New testcase.

2019-07-15  Richard Biener  

PR middle-end/91162
* tree-cfg.c (move_block_to_fn): When releasing a virtual PHI
node make sure to replace all uses with something valid.

* gcc.dg/autopar/pr91162.c: New testcase.

2019-07-11  Richard Biener  

PR middle-end/91131
* gimplify.c (gimplify_compound_literal_expr): Force a temporary
when the object is volatile and we have not cleared it even though
there are no nonzero elements.

* gcc.target/i386/pr91131.c: New testcase.

2019-07-10  Richard Biener  

PR tree-optimization/91126
* tree-ssa-sccvn.c (n_walk_cb_data::push_partial_def): Adjust
native encoding offset for BYTES_BIG_ENDIAN.
(vn_reference_lookup_3): Likewise.

* gcc.dg/torture/pr91126.c: New testcase.

2019-07-10  Richard Biener  

PR tree-optimization/91126
* tree-ssa-sccvn.c (vn_reference_lookup_3): Adjust
native encoding offset for BYTES_BIG_ENDIAN.

* gcc.dg/torture/pr91126.c: New testcase.

2019-04-29  Richard Biener  

PR tree-optimization/90278
* tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
EH on comparison simplification.

* gcc.dg/torture/pr90278.c: New testcase.

2019-04-11  Richard Biener  

PR tree-optimization/90020
* tree-ssa-sccvn.c (vn_reference_may_trap): New function.
* tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
* tree-ssa-pre.c (compute_avail): Use it to not put
possibly trapping references after a call that might not
return into EXP_GEN.
* gcse.c (compute_hash_table_work): Do not elide
marking a block containing a call if the call might not
return.

* gcc.dg/torture/pr90020.c: New testcase.

Added:
branches/gcc-7-branch/gcc/testsuite/gcc.dg/autopar/pr91162.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr90020.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr90278.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr91126.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr91200.c
branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr91131.c
Modified:
branches/gcc-7-branch/gcc/ChangeLog
branches/gcc-7-branch/gcc/gcse.c
branches/gcc-7-branch/gcc/gimplify.c
branches/gcc-7-branch/gcc/testsuite/ChangeLog
branches/gcc-7-branch/gcc/tree-cfg.c
branches/gcc-7-branch/gcc/tree-ssa-forwprop.c
branches/gcc-7-branch/gcc/tree-ssa-phiopt.c
branches/gcc-7-branch/gcc/tree-ssa-pre.c
branches/gcc-7-branch/gcc/tree-ssa-sccvn.c
branches/gcc-7-branch/gcc/tree-ssa-sccvn.h

[Bug tree-optimization/90278] ICE: verify_gimple failed (error: statement marked for throw, but doesn't)

2019-09-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90278

--- Comment #6 from Richard Biener  ---
Author: rguenth
Date: Mon Sep  2 12:56:24 2019
New Revision: 275317

URL: https://gcc.gnu.org/viewcvs?rev=275317=gcc=rev
Log:
2019-09-02  Richard Biener  

Backport from mainline
2019-07-19  Richard Biener  

PR tree-optimization/91200
* tree-ssa-phiopt.c (cond_store_replacement): Check we have
no PHI nodes in middle-bb.

* gcc.dg/torture/pr91200.c: New testcase.

2019-07-15  Richard Biener  

PR middle-end/91162
* tree-cfg.c (move_block_to_fn): When releasing a virtual PHI
node make sure to replace all uses with something valid.

* gcc.dg/autopar/pr91162.c: New testcase.

2019-07-11  Richard Biener  

PR middle-end/91131
* gimplify.c (gimplify_compound_literal_expr): Force a temporary
when the object is volatile and we have not cleared it even though
there are no nonzero elements.

* gcc.target/i386/pr91131.c: New testcase.

2019-07-10  Richard Biener  

PR tree-optimization/91126
* tree-ssa-sccvn.c (n_walk_cb_data::push_partial_def): Adjust
native encoding offset for BYTES_BIG_ENDIAN.
(vn_reference_lookup_3): Likewise.

* gcc.dg/torture/pr91126.c: New testcase.

2019-07-10  Richard Biener  

PR tree-optimization/91126
* tree-ssa-sccvn.c (vn_reference_lookup_3): Adjust
native encoding offset for BYTES_BIG_ENDIAN.

* gcc.dg/torture/pr91126.c: New testcase.

2019-04-29  Richard Biener  

PR tree-optimization/90278
* tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
EH on comparison simplification.

* gcc.dg/torture/pr90278.c: New testcase.

2019-04-11  Richard Biener  

PR tree-optimization/90020
* tree-ssa-sccvn.c (vn_reference_may_trap): New function.
* tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
* tree-ssa-pre.c (compute_avail): Use it to not put
possibly trapping references after a call that might not
return into EXP_GEN.
* gcse.c (compute_hash_table_work): Do not elide
marking a block containing a call if the call might not
return.

* gcc.dg/torture/pr90020.c: New testcase.

Added:
branches/gcc-7-branch/gcc/testsuite/gcc.dg/autopar/pr91162.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr90020.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr90278.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr91126.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr91200.c
branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr91131.c
Modified:
branches/gcc-7-branch/gcc/ChangeLog
branches/gcc-7-branch/gcc/gcse.c
branches/gcc-7-branch/gcc/gimplify.c
branches/gcc-7-branch/gcc/testsuite/ChangeLog
branches/gcc-7-branch/gcc/tree-cfg.c
branches/gcc-7-branch/gcc/tree-ssa-forwprop.c
branches/gcc-7-branch/gcc/tree-ssa-phiopt.c
branches/gcc-7-branch/gcc/tree-ssa-pre.c
branches/gcc-7-branch/gcc/tree-ssa-sccvn.c
branches/gcc-7-branch/gcc/tree-ssa-sccvn.h

[Bug middle-end/91131] Bad bitfield coalescing

2019-09-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91131

--- Comment #15 from Richard Biener  ---
Author: rguenth
Date: Mon Sep  2 12:56:24 2019
New Revision: 275317

URL: https://gcc.gnu.org/viewcvs?rev=275317=gcc=rev
Log:
2019-09-02  Richard Biener  

Backport from mainline
2019-07-19  Richard Biener  

PR tree-optimization/91200
* tree-ssa-phiopt.c (cond_store_replacement): Check we have
no PHI nodes in middle-bb.

* gcc.dg/torture/pr91200.c: New testcase.

2019-07-15  Richard Biener  

PR middle-end/91162
* tree-cfg.c (move_block_to_fn): When releasing a virtual PHI
node make sure to replace all uses with something valid.

* gcc.dg/autopar/pr91162.c: New testcase.

2019-07-11  Richard Biener  

PR middle-end/91131
* gimplify.c (gimplify_compound_literal_expr): Force a temporary
when the object is volatile and we have not cleared it even though
there are no nonzero elements.

* gcc.target/i386/pr91131.c: New testcase.

2019-07-10  Richard Biener  

PR tree-optimization/91126
* tree-ssa-sccvn.c (n_walk_cb_data::push_partial_def): Adjust
native encoding offset for BYTES_BIG_ENDIAN.
(vn_reference_lookup_3): Likewise.

* gcc.dg/torture/pr91126.c: New testcase.

2019-07-10  Richard Biener  

PR tree-optimization/91126
* tree-ssa-sccvn.c (vn_reference_lookup_3): Adjust
native encoding offset for BYTES_BIG_ENDIAN.

* gcc.dg/torture/pr91126.c: New testcase.

2019-04-29  Richard Biener  

PR tree-optimization/90278
* tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
EH on comparison simplification.

* gcc.dg/torture/pr90278.c: New testcase.

2019-04-11  Richard Biener  

PR tree-optimization/90020
* tree-ssa-sccvn.c (vn_reference_may_trap): New function.
* tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
* tree-ssa-pre.c (compute_avail): Use it to not put
possibly trapping references after a call that might not
return into EXP_GEN.
* gcse.c (compute_hash_table_work): Do not elide
marking a block containing a call if the call might not
return.

* gcc.dg/torture/pr90020.c: New testcase.

Added:
branches/gcc-7-branch/gcc/testsuite/gcc.dg/autopar/pr91162.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr90020.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr90278.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr91126.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr91200.c
branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr91131.c
Modified:
branches/gcc-7-branch/gcc/ChangeLog
branches/gcc-7-branch/gcc/gcse.c
branches/gcc-7-branch/gcc/gimplify.c
branches/gcc-7-branch/gcc/testsuite/ChangeLog
branches/gcc-7-branch/gcc/tree-cfg.c
branches/gcc-7-branch/gcc/tree-ssa-forwprop.c
branches/gcc-7-branch/gcc/tree-ssa-phiopt.c
branches/gcc-7-branch/gcc/tree-ssa-pre.c
branches/gcc-7-branch/gcc/tree-ssa-sccvn.c
branches/gcc-7-branch/gcc/tree-ssa-sccvn.h

[Bug tree-optimization/90020] [7 regression] -O2 -Os x86-64 wrong code generated for GNU Emacs

2019-09-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90020

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||7.4.1
 Resolution|--- |FIXED

--- Comment #24 from Richard Biener  ---
Fixed.

[Bug tree-optimization/91126] [7 regression] Incorrect constant propagation of BIT_FIELD_REF

2019-09-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91126

--- Comment #12 from Richard Biener  ---
Author: rguenth
Date: Mon Sep  2 12:56:24 2019
New Revision: 275317

URL: https://gcc.gnu.org/viewcvs?rev=275317=gcc=rev
Log:
2019-09-02  Richard Biener  

Backport from mainline
2019-07-19  Richard Biener  

PR tree-optimization/91200
* tree-ssa-phiopt.c (cond_store_replacement): Check we have
no PHI nodes in middle-bb.

* gcc.dg/torture/pr91200.c: New testcase.

2019-07-15  Richard Biener  

PR middle-end/91162
* tree-cfg.c (move_block_to_fn): When releasing a virtual PHI
node make sure to replace all uses with something valid.

* gcc.dg/autopar/pr91162.c: New testcase.

2019-07-11  Richard Biener  

PR middle-end/91131
* gimplify.c (gimplify_compound_literal_expr): Force a temporary
when the object is volatile and we have not cleared it even though
there are no nonzero elements.

* gcc.target/i386/pr91131.c: New testcase.

2019-07-10  Richard Biener  

PR tree-optimization/91126
* tree-ssa-sccvn.c (n_walk_cb_data::push_partial_def): Adjust
native encoding offset for BYTES_BIG_ENDIAN.
(vn_reference_lookup_3): Likewise.

* gcc.dg/torture/pr91126.c: New testcase.

2019-07-10  Richard Biener  

PR tree-optimization/91126
* tree-ssa-sccvn.c (vn_reference_lookup_3): Adjust
native encoding offset for BYTES_BIG_ENDIAN.

* gcc.dg/torture/pr91126.c: New testcase.

2019-04-29  Richard Biener  

PR tree-optimization/90278
* tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
EH on comparison simplification.

* gcc.dg/torture/pr90278.c: New testcase.

2019-04-11  Richard Biener  

PR tree-optimization/90020
* tree-ssa-sccvn.c (vn_reference_may_trap): New function.
* tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
* tree-ssa-pre.c (compute_avail): Use it to not put
possibly trapping references after a call that might not
return into EXP_GEN.
* gcse.c (compute_hash_table_work): Do not elide
marking a block containing a call if the call might not
return.

* gcc.dg/torture/pr90020.c: New testcase.

Added:
branches/gcc-7-branch/gcc/testsuite/gcc.dg/autopar/pr91162.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr90020.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr90278.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr91126.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/torture/pr91200.c
branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr91131.c
Modified:
branches/gcc-7-branch/gcc/ChangeLog
branches/gcc-7-branch/gcc/gcse.c
branches/gcc-7-branch/gcc/gimplify.c
branches/gcc-7-branch/gcc/testsuite/ChangeLog
branches/gcc-7-branch/gcc/tree-cfg.c
branches/gcc-7-branch/gcc/tree-ssa-forwprop.c
branches/gcc-7-branch/gcc/tree-ssa-phiopt.c
branches/gcc-7-branch/gcc/tree-ssa-pre.c
branches/gcc-7-branch/gcc/tree-ssa-sccvn.c
branches/gcc-7-branch/gcc/tree-ssa-sccvn.h

[Bug tree-optimization/83661] sincos does not handle sin(2x)

2019-09-02 Thread wilco at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83661

Wilco  changed:

   What|Removed |Added

 CC||wilco at gcc dot gnu.org

--- Comment #8 from Wilco  ---
(In reply to Christophe Monat from comment #6)
> (In reply to Alexander Monakov from comment #5)
> > sincos performs range reduction for the argument just once, which is fairly
> > important. A well-optimized sincos also shares some computations for the
> > sin/cos parts, as done in
> > https://github.com/ARM-software/optimized-routines/blob/master/math/sincosf.c
> 
> Thanks for the pointer, indeed this implementation looks great.
> 
> @Pratamesh #Linaro: is there synchronization between the ARM optimized
> routines and the usuals libc (glibc, newlib, musl,...) ?

I already committed the rewritten sinf/cosf/sincosf to GLIBC and newlib. Musl
still uses a slow version.

> > (fwiw I'm against adding such transforms to the compiler)
> 
> I would favor upgrading the routines if it's not already done, and not do
> any such transformation in the compiler.

One of the key issues with sincos is that it has a slow interface - you can get
a large speedup by avoiding all the unncessary memory accesses.

[Bug c++/91636] performance regression about const string optimization

2019-09-02 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91636

--- Comment #3 from Jonathan Wakely  ---
There is no standard output because there's no standard build of GCC. The
output depends how it's configured and built.

On RHEL/CentOS 6 and 7 the devtoolset compiler only supports the old
std::string implementation. If you want the new std::string you need to compile
GCC yourself (and live with the fact all the system libraries use the old
string) or use RHEL/CentOS 8.

[Bug middle-end/91512] [10 Regression] Fortran compile time regression.

2019-09-02 Thread tkoenig at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91512

Thomas Koenig  changed:

   What|Removed |Added

   Keywords||compile-time-hog,
   ||memory-hog

--- Comment #19 from Thomas Koenig  ---
As a workaround, you could compile with -Os.

Apart from that, 10 gig also seems excessive for compiling.

However, without a test case this is not a valid bug report :-| and
trying stabs in the dark like comment#17 is not likely to succeed.

Is there and way you can reduce this to something you could post?
I will omit my standard rant about closed-source benchmarks for
a change.

[Bug tree-optimization/90018] [7 Regression] r265453 miscompiled 527.cam4_r in SPEC CPU 2017

2019-09-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90018

--- Comment #22 from Richard Biener  ---
The reduced testcase isn't vectorized on the GCC 7 branch for other reasons.

[Bug target/91637] New: Make efficient ISR prologues and epilogues on AVR available to Ada/GNAT

2019-09-02 Thread rolf.ebert.gcc at gmx dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91637

Bug ID: 91637
   Summary: Make efficient ISR prologues and epilogues on AVR
available to Ada/GNAT
   Product: gcc
   Version: 9.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: rolf.ebert.gcc at gmx dot de
  Target Milestone: ---

The fix for PR target/81268 and PR target/20296 works for C and C++, but does
not work for Ada (gnat1).

Despite the same back-end (between gnat1 and cc1) and the explicit compiler
switch -mgas-isr-prologues the new assembler pseudo codes __gcc_isr are not
generated.

[Bug c++/91636] performance regression about const string optimization

2019-09-02 Thread baiwfg2 at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91636

--- Comment #2 from Chan Lewis  ---
(In reply to Jonathan Wakely from comment #1)
> (In reply to Chan Lewis from comment #0)
> > My gcc 7.3.1 version info is:
> > 
> > [root@VM_11_190_centos /data1/ethencao]# gcc -v
> > Using built-in specs.
> > COLLECT_GCC=gcc
> > COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/7/lto-wrapper
> > OFFLOAD_TARGET_NAMES=nvptx-none
> > OFFLOAD_TARGET_DEFAULT=1
> > Target: x86_64-redhat-linux
> > Configured with: ../configure --enable-bootstrap
> > --enable-languages=c,c++,objc,obj-c++,fortran,ada,go,lto --prefix=/usr
> > --mandir=/usr/share/man --infodir=/usr/share/info
> > --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared
> > --enable-threads=posix --enable-checking=release --enable-multilib
> > --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions
> > --with-default-libstdcxx-abi=gcc4-compatible
> 
> As I already told you by email, you're comparing apples with oranges. Your
> GCC 7.3.1 uses the old std::string ABI, as shown by the line above.

I'm sorry for that. I'd thought it's different from devtoolset's gcc. It turns
out I've been always using Redhat's gcc. You mean the cause is just this:
`--with-default-libstdcxx-abi=gcc4-compatible` or is the Redhat gcc itself ?
What's the standard output of GNU gcc -v ?

[Bug c++/91636] performance regression about const string optimization

2019-09-02 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91636

Jonathan Wakely  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #1 from Jonathan Wakely  ---
(In reply to Chan Lewis from comment #0)
> My gcc 7.3.1 version info is:
> 
> [root@VM_11_190_centos /data1/ethencao]# gcc -v
> Using built-in specs.
> COLLECT_GCC=gcc
> COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/7/lto-wrapper
> OFFLOAD_TARGET_NAMES=nvptx-none
> OFFLOAD_TARGET_DEFAULT=1
> Target: x86_64-redhat-linux
> Configured with: ../configure --enable-bootstrap
> --enable-languages=c,c++,objc,obj-c++,fortran,ada,go,lto --prefix=/usr
> --mandir=/usr/share/man --infodir=/usr/share/info
> --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared
> --enable-threads=posix --enable-checking=release --enable-multilib
> --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions
> --with-default-libstdcxx-abi=gcc4-compatible

As I already told you by email, you're comparing apples with oranges. Your GCC
7.3.1 uses the old std::string ABI, as shown by the line above.

[Bug c++/91636] New: performance regression about const string optimization

2019-09-02 Thread baiwfg2 at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91636

Bug ID: 91636
   Summary: performance regression about const string optimization
   Product: gcc
   Version: 7.3.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: baiwfg2 at gmail dot com
  Target Milestone: ---

Hi. I'm benchmarking const std::string optimization with different gcc version
and find that gcc 7.3.1 is not working well. Here's my benchmark code (I also
put it on wandbox: https://wandbox.org/permlink/vuAZWRp4H6S6Foh2) :
```
#include 
#include 
#include 
#include 
#include 

using namespace std;


void bad() {
for (int i=0; i<1000; i++) {
string s;
s = "loog";
}

}

void good() {
for (int i=0; i<1000; i++) {
const string s =
"loog";
}

}

typedef void(*fp)();
void timing(fp fn) {
auto begin = std::chrono::high_resolution_clock::now();
fn();
auto end = std::chrono::high_resolution_clock::now();
std::cout <<
std::chrono::duration_cast(end-begin).count() <<
std::endl;
}

int main(int argc, char* argv[])
{
if (argc != 2) {
cout << "wrong args\n";
exit(1);
}

char c = argv[1][0];
if (c == '1')
timing(bad);
else if (c == '2')
timing(good);
}
```

Obviously the good() is better than bad(). But when I try compiling:

g++-7.3.1 a.cc -O2

And run it. It gives much worse result(good() is -7% more efficient than bad())
than any other version does, such as gcc 7.3.0, 7.4.0, 8.3.0( 30-40% more
efficient).

My gcc 7.3.1 version info is:

[root@VM_11_190_centos /data1/ethencao]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/7/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-redhat-linux
Configured with: ../configure --enable-bootstrap
--enable-languages=c,c++,objc,obj-c++,fortran,ada,go,lto --prefix=/usr
--mandir=/usr/share/man --infodir=/usr/share/info
--with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared
--enable-threads=posix --enable-checking=release --enable-multilib
--with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions
--with-default-libstdcxx-abi=gcc4-compatible --enable-gnu-unique-object
--enable-linker-build-id --with-gcc-major-version-only
--with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl
--enable-libmpx --enable-offload-targets=nvptx-none --without-cuda-driver
--enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64
--build=x86_64-redhat-linux
Thread model: posix
gcc version 7.3.1 20180303 (Red Hat 7.3.1-6) (GCC) 

By the way, I don't install gcc by source compiling. Instead I use yum,
apt-get, or docker to use it.

[Bug libstdc++/90770] Building with --enable-libstdcxx-debug and make profiledbootstrap fails with mv: cannot stat 'Makefile': No such file or directory

2019-09-02 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90770

Jonathan Wakely  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #10 from Jonathan Wakely  ---
Fixed for 7.5, 8.4, and 9.2

[Bug libstdc++/91308] [7 Regression] unique_ptr assignment fails with different deleters

2019-09-02 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91308

Jonathan Wakely  changed:

   What|Removed |Added

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

--- Comment #5 from Jonathan Wakely  ---
Fixed for 7.5, 8.4 and 9.2

[Bug rtl-optimization/91635] New: wrong code at -O2 with __builtin_add_overflow()

2019-09-02 Thread zsojka at seznam dot cz
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91635

Bug ID: 91635
   Summary: wrong code at -O2 with __builtin_add_overflow()
   Product: gcc
   Version: 10.0
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: rtl-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: zsojka at seznam dot cz
  Target Milestone: ---
  Host: x86_64-pc-linux-gnu
Target: riscv64-unknown-linux-gnu

Created attachment 46798
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46798=edit
reduced testcase

Output:
$ /repo/gcc-trunk/binary-latest-riscv64/bin/riscv64-unknown-linux-gnu-gcc -O2
testcase.c -static
$ qemu-riscv64 ./a.out 
Aborted

At the assembly level:
foo:
# testcase.c:6:   c <<= __builtin_add_overflow (-c, -1, );
not a0,a0   # tmp84, tmp89
lui a5,%hi(b)   # tmp81,
sh  a0,%lo(b)(a5)   # tmp84, b
# testcase.c:9: }
li  a0,0#,
ret

Constant 0 is loaded to the register; that is wrong.

$ riscv64-unknown-linux-gnu-gcc -v
Using built-in specs.
COLLECT_GCC=/repo/gcc-trunk/binary-latest-riscv64/bin/riscv64-unknown-linux-gnu-gcc
COLLECT_LTO_WRAPPER=/repo/gcc-trunk/binary-trunk-275299-checking-yes-rtl-df-extra-riscv64/bin/../libexec/gcc/riscv64-unknown-linux-gnu/10.0.0/lto-wrapper
Target: riscv64-unknown-linux-gnu
Configured with: /repo/gcc-trunk//configure --enable-languages=c,c++
--enable-valgrind-annotations --disable-nls --enable-checking=yes,rtl,df,extra
--with-cloog --with-ppl --with-isl
--with-sysroot=/usr/riscv64-unknown-linux-gnu --build=x86_64-pc-linux-gnu
--host=x86_64-pc-linux-gnu --target=riscv64-unknown-linux-gnu
--with-ld=/usr/bin/riscv64-unknown-linux-gnu-ld
--with-as=/usr/bin/riscv64-unknown-linux-gnu-as --disable-multilib
--disable-libstdcxx-pch
--prefix=/repo/gcc-trunk//binary-trunk-275299-checking-yes-rtl-df-extra-riscv64
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 10.0.0 20190902 (experimental) (GCC)

[Bug tree-optimization/83661] sincos does not handle sin(2x)

2019-09-02 Thread mkuvyrkov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83661

Maxim Kuvyrkov  changed:

   What|Removed |Added

 CC||mkuvyrkov at gcc dot gnu.org

--- Comment #7 from Maxim Kuvyrkov  ---
Hi Christophe,

Re. synchronization of optimized-routines and the popular C libraries -- this
is done on regular cycles by Szabolcs (Arm).

FYI, Linaro and Arm are merging cortex-strings into optimized-routines, so soon
there will be a single repo for Arm implementations of C library functions. 
This and more will be discussed at SAN19 Connect, and there is even a
main-track session on optimized-routines.

[Bug libstdc++/51333] [7/8 Regression] cxxabi.h incompatible with -fkeep-inline-functions at link time

2019-09-02 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51333

--- Comment #14 from Jonathan Wakely  ---
Author: redi
Date: Mon Sep  2 11:10:00 2019
New Revision: 275309

URL: https://gcc.gnu.org/viewcvs?rev=275309=gcc=rev
Log:
PR libstdc++/51333 Define recursive_init_error constructor non-inline

The recursive_init_error class is defined in a header, with an inline
constructor, but the definition of the vtable and destructor are not
exported from the shared library. With -fkeep-inline-functions the
constructor gets emitted in user code, and requires the (non-exported)
vtable. This fails to link.

As far as I can tell, the recursive_init_error class definition was
moved into  so it could be documented with Doxygen, not for
any technical reason. But now it's there (and documented), somebody
could be relying on it, by catching that type and possibly performing
derived-to-base conversions to the std::exception base class. So the
conservative fix is to leave the class definition in the header but make
the constructor non-inline. This still allows the type to be caught and
still defines its base class.

Backport from mainline
2019-07-29  Jonathan Wakely  

PR libstdc++/51333
* libsupc++/cxxabi.h (__gnu_cxx::recursive_init_error): Do not define
constructor inline.
* libsupc++/guard_error.cc (__gnu_cxx::recursive_init_error): Define
constructor.
* testsuite/18_support/51333.cc: New test.

Added:
branches/gcc-7-branch/libstdc++-v3/testsuite/18_support/51333.cc
Modified:
branches/gcc-7-branch/libstdc++-v3/ChangeLog
branches/gcc-7-branch/libstdc++-v3/libsupc++/cxxabi.h
branches/gcc-7-branch/libstdc++-v3/libsupc++/guard_error.cc

[Bug middle-end/89303] [7 Regression] memory leak with shared_ptr and enable_shared_from_this

2019-09-02 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89303

--- Comment #35 from Jonathan Wakely  ---
Author: redi
Date: Mon Sep  2 11:10:08 2019
New Revision: 275312

URL: https://gcc.gnu.org/viewcvs?rev=275312=gcc=rev
Log:
PR middle-end/89303 add testcase for std::enable_shared_from_this

PR middle-end/89303
* testsuite/20_util/enable_shared_from_this/89303.cc: New test.

Added:
   
branches/gcc-7-branch/libstdc++-v3/testsuite/20_util/enable_shared_from_this/89303.cc
Modified:
branches/gcc-7-branch/libstdc++-v3/ChangeLog

[Bug libstdc++/91308] [7 Regression] unique_ptr assignment fails with different deleters

2019-09-02 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91308

--- Comment #4 from Jonathan Wakely  ---
Author: redi
Date: Mon Sep  2 11:10:04 2019
New Revision: 275311

URL: https://gcc.gnu.org/viewcvs?rev=275311=gcc=rev
Log:
PR libstdc++/91308 fix constraints on unique_ptr assignment

* testsuite/20_util/unique_ptr/assign/48635_neg.cc: Replace dg-error
with dg-prune-output for enable_if failure.
* testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc: Add
dg-prune-output for enable_if failure.

Backport from mainline
2019-07-31  Jonathan Wakely  

PR libstdc++/91308
* include/bits/unique_ptr.h (unique_ptr::__safe_conversion_up): Remove
constraints on deleter that should only apply to the constructor.
(unique_ptr::__safe_conversion_up): Likewise.
(unique_ptr::unique_ptr(unique_ptr&&)): Restore
constraints on deleter here.
* testsuite/20_util/unique_ptr/assign/91308.cc: New test.

Added:
   
branches/gcc-7-branch/libstdc++-v3/testsuite/20_util/unique_ptr/assign/91308.cc
Modified:
branches/gcc-7-branch/libstdc++-v3/ChangeLog
branches/gcc-7-branch/libstdc++-v3/include/bits/unique_ptr.h
   
branches/gcc-7-branch/libstdc++-v3/testsuite/20_util/unique_ptr/assign/48635_neg.cc
   
branches/gcc-7-branch/libstdc++-v3/testsuite/20_util/unique_ptr/cons/cv_qual_neg.cc

[Bug libstdc++/51333] [7/8 Regression] cxxabi.h incompatible with -fkeep-inline-functions at link time

2019-09-02 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51333

Jonathan Wakely  changed:

   What|Removed |Added

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

--- Comment #15 from Jonathan Wakely  ---
And 7.5

[Bug libstdc++/90770] Building with --enable-libstdcxx-debug and make profiledbootstrap fails with mv: cannot stat 'Makefile': No such file or directory

2019-09-02 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90770

--- Comment #9 from Jonathan Wakely  ---
Author: redi
Date: Mon Sep  2 11:09:55 2019
New Revision: 275308

URL: https://gcc.gnu.org/viewcvs?rev=275308=gcc=rev
Log:
PR libstdc++/90770 fix missing src/debug/Makefile

Backport from mainline
2019-06-07  Jonathan Wakely  

PR libstdc++/90770
* src/Makefile.am (stamp-debug): Also test for missing makefile.
* src/Makefile.in: Regenerate.

Modified:
branches/gcc-7-branch/libstdc++-v3/ChangeLog
branches/gcc-7-branch/libstdc++-v3/src/Makefile.am
branches/gcc-7-branch/libstdc++-v3/src/Makefile.in

[Bug ipa/91062] gcc.dg/ipa/ipa-pta-1.c dump contains garbage when gcc was configured with --enable-checking=all

2019-09-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91062

Richard Biener  changed:

   What|Removed |Added

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

--- Comment #8 from Richard Biener  ---
Fixed.  Not worth backporting further.

[Bug rtl-optimization/91137] [7 Regression] Wrong code with -O3

2019-09-02 Thread amker at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91137

--- Comment #15 from bin cheng  ---
Author: amker
Date: Mon Sep  2 10:10:44 2019
New Revision: 275304

URL: https://gcc.gnu.org/viewcvs?rev=275304=gcc=rev
Log:
Backport from mainline
2019-07-18  Bin Cheng  

PR tree-optimization/91137
* tree-ssa-loop-ivopts.c (struct ivopts_data): New field.
(tree_ssa_iv_optimize_init, alloc_iv, tree_ssa_iv_optimize_finalize):
Init, use and fini the above new field.
(determine_base_object_1): New function.
(determine_base_object): Reimplement using walk_tree.

2019-07-18  Bin Cheng  

PR tree-optimization/91137
* gcc.c-torture/execute/pr91137.c: New test.

Added:
branches/gcc-7-branch/gcc/testsuite/gcc.c-torture/execute/pr91137.c
Modified:
branches/gcc-7-branch/gcc/ChangeLog
branches/gcc-7-branch/gcc/testsuite/ChangeLog
branches/gcc-7-branch/gcc/tree-ssa-loop-ivopts.c

[Bug target/91323] LTGT rtx produces UCOMISS instead of COMISS

2019-09-02 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91323

--- Comment #20 from Eric Botcazou  ---
Author: ebotcazou
Date: Mon Sep  2 10:10:23 2019
New Revision: 275303

URL: https://gcc.gnu.org/viewcvs?rev=275303=gcc=rev
Log:
PR target/91323
* doc/generic.texi (LTGT_EXPR): Merge with other comparison operators.
* rtl.def (LTGT): Likewise.  Add note about floating-point exceptions.
* tree.def (LTGT_EXPR): Likewise.
* config/sparc/sparc.c (select_cc_mode): Return CCFPEmode for LTGT.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/sparc/sparc.c
trunk/gcc/doc/generic.texi
trunk/gcc/rtl.def
trunk/gcc/tree.def

[Bug target/91634] [10 Regression] 508.namd_r (and 435.gromacs) speed regression after r274994

2019-09-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91634

Richard Biener  changed:

   What|Removed |Added

 Target||x86_64-linux-gnu
   Target Milestone|--- |10.0

[Bug target/91323] LTGT rtx produces UCOMISS instead of COMISS

2019-09-02 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91323

--- Comment #19 from rguenther at suse dot de  ---
On Mon, 2 Sep 2019, ebotcazou at gcc dot gnu.org wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91323
> 
> --- Comment #17 from Eric Botcazou  ---
> Created attachment 46797
>   --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46797=edit
> Proposed wording change

LGTM.

[Bug middle-end/91633] Why -funroll-loops affect code without loop.

2019-09-02 Thread crazylht at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91633

--- Comment #2 from Hongtao.liu  ---
It's at least confusing.

[Bug target/91323] LTGT rtx produces UCOMISS instead of COMISS

2019-09-02 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91323

--- Comment #18 from rguenther at suse dot de  ---
On Mon, 2 Sep 2019, ebotcazou at gcc dot gnu.org wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91323
> 
> --- Comment #16 from Eric Botcazou  ---
> > Other than that my view is that the GENERIC/GIMPLE side is correct.
> > Besides even RTL "high-level" get's this consistent (may_trap_p_1),
> > likewise simplify-rtx if my quick survey is correct.
> 
> Yes, the RTL middle-end indeed says that LTGT signals on NaNs.
> 
> > So IMHO siding with the non-target interpretation feels quite
> > natural to me.  rtl.texi has no entry for LTGT and both tree.def
> > and rtl.def agree.
> 
> IMO that's less clear for rtl.def:
> 
> /* This is an ordered NE, ie !UNEQ, ie false for NaN.  */
> 
> Do you read "ordered" as "signaling on NaNs"?  Then what about EQ?

Yes.

> And even less clear for tree.def:
> 
> /* This is the reverse of uneq_expr.  */
> 
> > The only disagreeing part is LTGT_EXPR in generic.texi which is "fuzzy" 
> > (says
> > unordered but then "With the possible exception of @code{LTGT_EXPR}, all of
> > these operations are guaranteed not to generate a floating point exception."
> > So even that can be read as "agreement".
> 
> IMO it's just aligned with rtl.def/tree.def, i.e. it doesn't really take side.
> 
> 
> So we need to modify rtl.def, tree.def and generic.texi to clearly state that
> LTGT signals on NaNs, like GE/GT/LE/LT.  And actually fix generic.texi because
> LTGT_EXPR is *not* an unordered comparison operator: as rtl.def says, it's the
> ordered NE, i.e. it returns false for NaNs.

Lets do it.

[Bug target/91634] New: [10 Regression] 508.namd_r (and 435.gromacs) speed regression after r274994

2019-09-02 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91634

Bug ID: 91634
   Summary: [10 Regression] 508.namd_r (and 435.gromacs) speed
regression after r274994
   Product: gcc
   Version: 10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: marxin at gcc dot gnu.org
CC: uros at gcc dot gnu.org
Blocks: 26163
  Target Milestone: ---
  Host: x86_64-linux-gnu

After the revision I see quite some regressions on -march=skylake:

https://lnt.opensuse.org/db_default/v4/SPEC/graph?plot.0=28.447.0=7.90.0

Similarly with different tuning options.


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=26163
[Bug 26163] [meta-bug] missed optimization in SPEC (2k17, 2k and 2k6 and 95)

[Bug target/91323] LTGT rtx produces UCOMISS instead of COMISS

2019-09-02 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91323

--- Comment #17 from Eric Botcazou  ---
Created attachment 46797
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46797=edit
Proposed wording change

[Bug middle-end/91633] Why -funroll-loops affect code without loop.

2019-09-02 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91633

Andrew Pinski  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
  Component|c   |middle-end
 Resolution|--- |INVALID

--- Comment #1 from Andrew Pinski  ---
From the documentation:
>-funroll-loops implies -frerun-cse-after-loop, -fweb and -frename-registers.

So there is no bug here.

[Bug c++/91155] __PRETTY_FUNCTION__ gets truncated when char template parameter is '\0'

2019-09-02 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91155

Martin Liška  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||9.2.0
 Resolution|--- |FIXED
Summary|[9 Regression]  |__PRETTY_FUNCTION__ gets
   |__PRETTY_FUNCTION__ gets|truncated when char
   |truncated when char |template parameter is '\0'
   |template parameter is '\0'  |
  Known to fail|9.1.0   |

--- Comment #9 from Martin Liška  ---
Fixed on all active branches.

[Bug gcov-profile/91601] gcov: ICE in handle_cycle, at gcov.c:699 happen which get code coverage with lcov.

2019-09-02 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91601

Martin Liška  changed:

   What|Removed |Added

 Status|SUSPENDED   |RESOLVED
 Resolution|--- |FIXED

[Bug gcov-profile/91601] gcov: ICE in handle_cycle, at gcov.c:699 happen which get code coverage with lcov.

2019-09-02 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91601

Martin Liška  changed:

   What|Removed |Added

 Status|ASSIGNED|SUSPENDED
  Known to work||9.2.0
Summary|[9 Regression] gcov: ICE in |gcov: ICE in handle_cycle,
   |handle_cycle, at gcov.c:699 |at gcov.c:699 happen which
   |happen which get code   |get code coverage with
   |coverage with lcov. |lcov.
  Known to fail|9.2.0   |

--- Comment #12 from Martin Liška  ---
Fixed on all active branches.

[Bug c++/91155] [9 Regression] __PRETTY_FUNCTION__ gets truncated when char template parameter is '\0'

2019-09-02 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91155

--- Comment #8 from Martin Liška  ---
Author: marxin
Date: Mon Sep  2 08:58:39 2019
New Revision: 275302

URL: https://gcc.gnu.org/viewcvs?rev=275302=gcc=rev
Log:
Backport r275292

2019-09-02  Martin Liska  

Backport from mainline
2019-09-02  Martin Liska  

PR c++/91155
* c-common.c (fname_as_string): Use cxx_printable_name for
__PRETTY_FUNCTION__ same as was used before r265711.
2019-09-02  Martin Liska  

Backport from mainline
2019-09-02  Martin Liska  

PR c++/91155
* g++.dg/torture/pr91155.C: New test.

Added:
branches/gcc-9-branch/gcc/testsuite/g++.dg/torture/pr91155.C
Modified:
branches/gcc-9-branch/gcc/c-family/ChangeLog
branches/gcc-9-branch/gcc/cp/decl.c
branches/gcc-9-branch/gcc/testsuite/ChangeLog

[Bug c/91633] New: Why -funroll-loops affect code without loop.

2019-09-02 Thread crazylht at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91633

Bug ID: 91633
   Summary: Why -funroll-loops affect code without loop.
   Product: gcc
   Version: 10.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: crazylht at gmail dot com
CC: hjl.tools at gmail dot com, skpgkp2 at gmail dot com
  Target Milestone: ---
Target: i386, x86-64

This testcase is cut from 538.exchange_r in SPEC2017.
---
typedef struct pixel{
  float red;
  float green;
  float blue;
}pixel;

typedef struct pixel2{
  unsigned short red;
  unsigned short green;
  unsigned short blue;
}pixel2;

extern double* p;
int foo (pixel* a, pixel2* b)
{
  double ret = (a->red-b->red) * (a->red-b->red)
+ (a->green-b->green) * (a->green-b->green)
+ (a->blue-b->blue) * (a->blue-b->blue);
  if (ret <= *p)
return 1;
  return 0;
}
---

It is supposed -funroll-loops wouldn't affect code generation, but currently
it's not, refer to https://godbolt.org/z/6hvQC7.

What i got in function process_options in toplev.c:

if (flag_rename_registers == AUTODETECT_VALUE)
flag_rename_registers = flag_unroll_loops;


Also note  pass rnreg will affect sched2.

[Bug gcov-profile/91601] [9 Regression] gcov: ICE in handle_cycle, at gcov.c:699 happen which get code coverage with lcov.

2019-09-02 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91601

--- Comment #11 from Martin Liška  ---
Author: marxin
Date: Mon Sep  2 08:58:17 2019
New Revision: 275301

URL: https://gcc.gnu.org/viewcvs?rev=275301=gcc=rev
Log:
Backport r275291

2019-09-02  Martin Liska  

Backport from mainline
2019-09-02  Martin Liska  

PR gcov-profile/91601
* gcov.c (path_contains_zero_cycle_arc): Rename to ...
(path_contains_zero_or_negative_cycle_arc): ... this and handle
also negative edges.
(circuit): Handle also negative edges as they can happen
in some situations.

Modified:
branches/gcc-9-branch/gcc/ChangeLog
branches/gcc-9-branch/gcc/gcov.c

[Bug tree-optimization/91616] Incorrect data address computation in very simple code

2019-09-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91616

Richard Biener  changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2019-09-02
 Ever confirmed|0   |1

--- Comment #2 from Richard Biener  ---
I don't see anything "incorrect" either - GCC optimizes this down to the
single IV 'seed', eliding 'i' by expressing data_array[i] in terms of 'seed':

   [local count: 955630224]:
  # seed_14 = PHI <14627338366734941935(2), seed_7(3)>
  seed_7 = seed_14 + 1;
  MEM[symbol: data_array, index: seed_7, step: 8, offset:
-633824249165792B] = seed_14;
  if (seed_7 != 14627338366734941951)
goto ; [89.00%]

[Bug go/91617] [10 regression] Many go test case failures after r275026

2019-09-02 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91617

Jakub Jelinek  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED
   Assignee|ian at airs dot com|jakub at gcc dot gnu.org

--- Comment #5 from Jakub Jelinek  ---
Should be fixed now.

[Bug target/91323] LTGT rtx produces UCOMISS instead of COMISS

2019-09-02 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91323

--- Comment #16 from Eric Botcazou  ---
> Other than that my view is that the GENERIC/GIMPLE side is correct.
> Besides even RTL "high-level" get's this consistent (may_trap_p_1),
> likewise simplify-rtx if my quick survey is correct.

Yes, the RTL middle-end indeed says that LTGT signals on NaNs.

> So IMHO siding with the non-target interpretation feels quite
> natural to me.  rtl.texi has no entry for LTGT and both tree.def
> and rtl.def agree.

IMO that's less clear for rtl.def:

/* This is an ordered NE, ie !UNEQ, ie false for NaN.  */

Do you read "ordered" as "signaling on NaNs"?  Then what about EQ?

And even less clear for tree.def:

/* This is the reverse of uneq_expr.  */

> The only disagreeing part is LTGT_EXPR in generic.texi which is "fuzzy" (says
> unordered but then "With the possible exception of @code{LTGT_EXPR}, all of
> these operations are guaranteed not to generate a floating point exception."
> So even that can be read as "agreement".

IMO it's just aligned with rtl.def/tree.def, i.e. it doesn't really take side.


So we need to modify rtl.def, tree.def and generic.texi to clearly state that
LTGT signals on NaNs, like GE/GT/LE/LT.  And actually fix generic.texi because
LTGT_EXPR is *not* an unordered comparison operator: as rtl.def says, it's the
ordered NE, i.e. it returns false for NaNs.

[Bug lto/91626] [9/10 Regression] FAIL: gcc.dg/lto/pr48622 c_lto_pr48622_0.o-c_lto_pr48622_0.o link, -O -flto -finline-small-functions -fno-early-inlining

2019-09-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91626

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |9.3

[Bug go/91617] [10 regression] Many go test case failures after r275026

2019-09-02 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91617

--- Comment #4 from Jakub Jelinek  ---
Author: jakub
Date: Mon Sep  2 08:38:13 2019
New Revision: 275299

URL: https://gcc.gnu.org/viewcvs?rev=275299=gcc=rev
Log:
PR go/91617
* fold-const.c (range_check_type): For enumeral and boolean
type, pass 1 to type_for_size langhook instead of
TYPE_UNSIGNED (etype).  Return unsigned_type_for result whenever
etype isn't TYPE_UNSIGNED INTEGER_TYPE.
(build_range_check): Don't call unsigned_type_for for pointer types.
* match.pd (X / C1 op C2): Don't call unsigned_type_for on
range_check_type result.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/fold-const.c
trunk/gcc/match.pd

[Bug middle-end/91623] [7/8/9 Regression] -msse4.1 -O3 segfault in /usr/lib/gcc/x86_64-pc-linux-gnu/8.3.0/include/smmintrin.h:270:10

2019-09-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91623

--- Comment #7 from Richard Biener  ---
(In reply to Marc Glisse from comment #6)
> For the missed constant folding, it seems that we end up in fold_vec_perm,
> with type a vector of "long long", while arg0 and arg1 are vectors of
> "long", and we give up because of the early check "TREE_TYPE (TREE_TYPE
> (arg0)) != TREE_TYPE (type)". I don't know if the check should be relaxed,
> or if the bug is earlier and we shouldn't have reached this place with such
> different types...

It's GENERIC type restrictions vs. GIMPLE ones and folding should be relaxed
here.

[Bug go/91617] [10 regression] Many go test case failures after r275026

2019-09-02 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91617

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |10.0

  1   2   >