[Bug gcov-profile/91601] [9/10 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 #9 from Martin Liška  ---
Author: marxin
Date: Mon Sep  2 07:06:54 2019
New Revision: 275291

URL: https://gcc.gnu.org/viewcvs?rev=275291&root=gcc&view=rev
Log:
Consider also negative edges in cycle detection.

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:
trunk/gcc/ChangeLog
trunk/gcc/gcov.c

[Bug c++/91155] [9/10 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 #6 from Martin Liška  ---
Author: marxin
Date: Mon Sep  2 07:07:11 2019
New Revision: 275292

URL: https://gcc.gnu.org/viewcvs?rev=275292&root=gcc&view=rev
Log:
Use cxx_printable_name for __PRETTY_FUNCTION__ in cp_fname_init.

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  

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

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

[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

Martin Liška  changed:

   What|Removed |Added

  Known to work||10.0
Summary|[9/10 Regression]   |[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|10.0|

--- Comment #7 from Martin Liška  ---
Fixed on trunk so far.

[Bug gcov-profile/91601] [9/10 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

Martin Liška  changed:

   What|Removed |Added

  Known to work||10.0
  Known to fail|10.0|

--- Comment #10 from Martin Liška  ---
Fixed on trunk so far.

[Bug testsuite/91619] New test case gcc.dg/vect/pr81740-2.c fails on powerpc64 power7 BE

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

Richard Biener  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2019-09-02
   Assignee|unassigned at gcc dot gnu.org  |rguenth at gcc dot 
gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Richard Biener  ---
Ah, the 9 branch has

/* { dg-require-effective-target vect_hw_misalign } */

will fix.

[Bug testsuite/91619] New test case gcc.dg/vect/pr81740-2.c fails on powerpc64 power7 BE

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

Richard Biener  changed:

   What|Removed |Added

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

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

[Bug testsuite/91619] New test case gcc.dg/vect/pr81740-2.c fails on powerpc64 power7 BE

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

--- Comment #3 from Richard Biener  ---
Author: rguenth
Date: Mon Sep  2 07:12:11 2019
New Revision: 275294

URL: https://gcc.gnu.org/viewcvs?rev=275294&root=gcc&view=rev
Log:
2019-09-02  Richard Biener  

PR testsuite/91619
* gcc.dg/vect/pr81740-2.c: Restrict to vect_hw_misalign.

Modified:
branches/gcc-8-branch/gcc/testsuite/ChangeLog
branches/gcc-8-branch/gcc/testsuite/gcc.dg/vect/pr81740-2.c

[Bug d/91628] libdruntime uses glibc internal symbol on s390

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

--- Comment #3 from Iain Buclaw  ---
The use of the function is for the garbage collector to be able to scan native
TLS data.

The logic of said function pretty much matches what the glibc macro
__TLS_GET_ADDR is doing.

[Bug d/91628] libdruntime uses glibc internal symbol on s390

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

--- Comment #4 from Florian Weimer  ---
(In reply to Iain Buclaw from comment #3)
> The use of the function is for the garbage collector to be able to scan
> native TLS data.
> 
> The logic of said function pretty much matches what the glibc macro
> __TLS_GET_ADDR is doing.

But you can use __tls_get_addr on other architectures, right?

I think for s390 and s390x, you should implement you own version of
__tls_get_addr (under a different/hidden name, of course) which is based on
__tls_get_offset, which is the official interface for this.

[Bug d/91628] libdruntime uses glibc internal symbol on s390

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

--- Comment #5 from Iain Buclaw  ---
(In reply to Florian Weimer from comment #4)
> (In reply to Iain Buclaw from comment #3)
> > The use of the function is for the garbage collector to be able to scan
> > native TLS data.
> > 
> > The logic of said function pretty much matches what the glibc macro
> > __TLS_GET_ADDR is doing.
> 
> But you can use __tls_get_addr on other architectures, right?
> 

That is correct.  I'll link the offending code for reference.

http://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libphobos/libdruntime/gcc/sections/elf_shared.d;h=7f9036bf5052861960f8a1d4a20838437c5c519c;hb=refs/heads/trunk#l1030


> I think for s390 and s390x, you should implement you own version of
> __tls_get_addr (under a different/hidden name, of course) which is based on
> __tls_get_offset, which is the official interface for this.

Would it be possible to infer the base address of the TLS range doing that
though?

[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 #15 from rguenther at suse dot de  ---
On Sat, 31 Aug 2019, ebotcazou at gcc dot gnu.org wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91323
> 
> Eric Botcazou  changed:
> 
>What|Removed |Added
> 
>  CC||ebotcazou at gcc dot gnu.org
> 
> --- Comment #14 from Eric Botcazou  ---
> The test fails on SPARC too because it was aligned with the x86.  We really
> need to make a global decision about LTGT, otherwise we should keep the status
> quo and revert the x86 change.

But the status qou is broken as can be seen in this PR.  We can of course
fix conservatively on the folding side (basically think of LTGT as
having "both" behaviors which I guess should make it simply unused,
and thus we should simply remove LTGT_EXPR).

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.

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.  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".

[Bug d/91628] libdruntime uses glibc internal symbol on s390

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

--- Comment #6 from Florian Weimer  ---
__tls_get_offset looks like this:

__tls_get_offset:
la  %r2,0(%r2,%r12)
jg  __tls_get_addr

The caller should be able to prepare for the la instruction, by subtracting r12
from r2.  (Not sure whose r12 this, and if it's modified by the PLT code.  If
it is, things could get tricky.)

[Bug tree-optimization/81740] [7 Regression] wrong code at -O3 in both 32-bit and 64-bit modes on x86_64-linux-gnu

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

Christophe Lyon  changed:

   What|Removed |Added

 CC||clyon at gcc dot gnu.org

--- Comment #12 from Christophe Lyon  ---

> Added:
> branches/gcc-8-branch/gcc/testsuite/gcc.dg/tree-ssa/pr89725.c
> branches/gcc-8-branch/gcc/testsuite/gcc.dg/vect/bb-slp-pr90006.c
> branches/gcc-8-branch/gcc/testsuite/gcc.dg/vect/pr81740-1.c
> branches/gcc-8-branch/gcc/testsuite/gcc.dg/vect/pr81740-2.c

Hi Richard,
I think you need to backport r269978:
2019-03-27  Bill Schmidt  

* gcc.dg/vect/pr81740-2.c: Require vect_hw_misalign.

(FWIW I see this test failing on armeb, while it is unsupported on trunk)

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

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

Bug ID: 91632
   Summary: [10 Regression] Probably wrong code since r275026
   Product: gcc
   Version: 10.0
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: marxin at gcc dot gnu.org
CC: jakub at gcc dot gnu.org
  Target Milestone: ---

Since the revision, I see postgres11 teste-suite failing. There's a reduced
test-case:

$ cat url.c
static int
__attribute__((noipa))
p_isurlchar(char ch)
{
if (ch <= 0x20 || ch >= 0x7F)
return 0;
/* reject characters disallowed by RFC 3986 */
switch (ch)
{
case '"':
case '<':
case '>':
case '\\':
case '^':
case '`':
case '{':
case '|':
case '}':
return 0;
}
return 1;
}

int main()
{
  const char *url = "http://aew.werc.ewr/?ad=qwe&dw";;
  int r = p_isurlchar (url[0]);
  __builtin_printf ("is_url: '%c': %d\n", url[0], r);
  if (r == 0)
__builtin_abort ();

  return 0;
}

$ gcc /tmp/url.c -O2 -fwrapv && ./a.out
is_url: 'h': 0
Aborted (core dumped)

$ gcc /tmp/url.c -fwrapv && ./a.out
is_url: 'h': 1

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

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

Martin Liška  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2019-09-02
  Known to work||9.2.0
   Target Milestone|--- |10.0
 Ever confirmed|0   |1
  Known to fail||10.0

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

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

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |10.0

[Bug target/91613] [10 regression][arm] gcc.dg/pr83930.c ICE since r274986

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

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |10.0

[Bug target/91614] [10 regression][arm] gcc.target/arm/unaligned-memcpy-2.c FAIL since r274986

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

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |10.0

[Bug target/91615] [10 regression][armeb] ICEs since r274986

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

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |10.0

[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

[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 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&root=gcc&view=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 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 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 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 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 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&root=gcc&view=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 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 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&root=gcc&view=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 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 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 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 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 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&action=edit
Proposed wording change

[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&plot.1=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 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 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 #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&action=edit
> Proposed wording change

LGTM.

[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 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&root=gcc&view=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 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&root=gcc&view=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 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 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&root=gcc&view=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 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++/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&root=gcc&view=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&root=gcc&view=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&root=gcc&view=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 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 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&action=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, &b);
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 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 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 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 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] 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 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 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 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 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 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 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&root=gcc&view=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&root=gcc&view=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&root=gcc&view=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&root=gcc&view=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/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&root=gcc&view=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/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&root=gcc&view=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

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/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 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/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 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 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/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&root=gcc&view=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 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 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 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/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/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 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&root=gcc&view=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&root=gcc&view=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&root=gcc&view=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/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&root=gcc&view=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 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&root=gcc&view=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/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 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/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 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&root=gcc&view=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 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 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 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++/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 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 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 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 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 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*.

  1   2   >