[Bug debug/96690] [10 Regression] ICE in write_type since r10-6087
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96690 Richard Biener changed: What|Removed |Added Known to work||11.0 Priority|P3 |P2 Summary|[10/11 Regression] ICE in |[10 Regression] ICE in |write_type since r10-6087 |write_type since r10-6087
[Bug debug/96690] [10/11 Regression] ICE in write_type since r10-6087
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96690 --- Comment #8 from CVS Commits --- The master branch has been updated by Richard Biener : https://gcc.gnu.org/g:7fe2cec41bb2ccb499b6b6c513e00da1a270370f commit r11-2834-g7fe2cec41bb2ccb499b6b6c513e00da1a270370f Author: Richard Biener Date: Mon Aug 24 14:12:01 2020 +0200 debug/96690 - mangle symbols eventually used by late dwarf output The following makes sure to, at early debug generation time, mangle symbols we eventually end up outputting during late finish. 2020-08-24 Richard Biener PR debug/96690 * dwarf2out.c (reference_to_unused): Make FUNCTION_DECL processing more consistent with respect to symtab->global_info_ready. (tree_add_const_value_attribute): Unconditionally call rtl_for_decl_init to do all mangling early but throw away the result if early_dwarf. * g++.dg/lto/pr96690_0.C: New testcase.
[Bug middle-end/64242] Longjmp expansion incorrect
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64242 --- Comment #41 from CVS Commits --- The master branch has been updated by Chenghua Xu : https://gcc.gnu.org/g:68e605c93d57c17f07edd50f7e1c80f9216befd2 commit r11-2835-g68e605c93d57c17f07edd50f7e1c80f9216befd2 Author: Andrew Pinski Date: Tue Aug 25 14:17:52 2020 +0800 MIPS: Fix __builtin_longjmp (PR 64242) The problem here is mips has its own builtin_longjmp pattern and it was not fixed when expand_builtin_longjmp was fixed. We need to read the new fp and gp before restoring the stack as the buffer might be a local variable. 2020-08-25 Andrew Pinski gcc/ChangeLog: PR middle-end/64242 * config/mips/mips.md (builtin_longjmp): Restore the frame pointer and stack pointer and gp.
[Bug testsuite/96519] [11 regression] new test case gcc.dg/ia64-sync-5.c fails
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96519 Richard Biener changed: What|Removed |Added Target Milestone|--- |11.0
[Bug tree-optimization/96522] [9/10/11 Regression] Incorrect with with -O -fno-tree-pta
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96522 Richard Biener changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org --- Comment #3 from Richard Biener --- Let me take this.
[Bug target/96528] [11 Regression] vector comparisons on ARM
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96528 Richard Biener changed: What|Removed |Added Ever confirmed|0 |1 Last reconfirmed||2020-08-25 Target Milestone|--- |11.0 Status|UNCONFIRMED |NEW --- Comment #1 from Richard Biener --- I think that eventually vector lowering should lower _1 = a == 5; _2 = b == 7; _3 = _1 | _2; _4 = _3 ? -1 : 0; to _31 = _1 ? -1 : 0; _32 = _2 ? -1 : 0; _33 = _31 | _32; _34 = _33 == -1; _4 = _34 ? -1 : 0; or so. Conditionals are really a mess, GIMPLE and optabs do not match 1:1 (we've rejected the idea of "splitting" VEC_COND_EXPR to VEC_COND_{EQ,NE,...}_EXPR and making it four-operand). Forcing vector compares to produce a bool vector result was the attempt to make the GIMPLE IL more streamlined, but obviously the above shows that code generation needs to be "fixed" - in this case it is vector lowering doing "code generation" (together with the later isel pass).
[Bug middle-end/96549] [10 Regression] Wrong evaluation of a comparison between long & short
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96549 Richard Biener changed: What|Removed |Added Priority|P3 |P2
[Bug tree-optimization/96548] [11 Regression] ICE in compute_live_loop_exits, at tree-ssa-loop-manip.c:247 since r11-2574-g6aec53ee4f75a64c
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96548 Richard Biener changed: What|Removed |Added Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org Status|NEW |ASSIGNED Target Milestone|--- |11.0 --- Comment #6 from Richard Biener --- Mine.
[Bug target/96551] [10/11 Regression] FAIL: gcc.target/i386/vectorize8.c (internal compiler error)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96551 Richard Biener changed: What|Removed |Added Target Milestone|--- |10.3 Keywords||ice-on-valid-code Priority|P3 |P2
[Bug c++/96555] "template argument involves template parameter(s)" with dot or arrow operator in partial specialization
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96555 Richard Biener changed: What|Removed |Added Keywords||rejects-valid --- Comment #1 from Richard Biener --- is it supposed to be accepted?
[Bug target/96562] Rather poor assembly generated for copy-list-initialization in return statement.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96562 Richard Biener changed: What|Removed |Added Resolution|--- |FIXED Status|NEW |RESOLVED Known to work||10.2.1 --- Comment #10 from Richard Biener --- Fixed.
[Bug middle-end/96564] [11 Regression] New maybe use of uninitialized variable warning since r11-959
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96564 --- Comment #5 from Richard Biener --- note alias cannot disabiguate (A) on its own since both a and x could be NULL, it additionally needs the flow-based info that a is not NULL at (A).
[Bug tree-optimization/96565] Failure to optimize out VLA even though it is left unused
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96565 Richard Biener changed: What|Removed |Added Keywords||missed-optimization CC||jakub at gcc dot gnu.org, ||rguenth at gcc dot gnu.org --- Comment #3 from Richard Biener --- So we have : saved_stack.2_7 = __builtin_stack_save (); _1 = (long int) x_6(D); _2 = _1 + -1; _13 = (sizetype) _2; _4 = (sizetype) x_6(D); _5 = (bitsizetype) _4; _14 = _5 * 8; arr.1_19 = __builtin_alloca_with_align (_4, 8); (*arr.1_19)[0] = 0; _12 = g (); if (_12 != 0) goto ; [INV] else goto ; [INV] : abort (); : __builtin_stack_restore (saved_stack.2_7); return; I guess the "usual" way of dealing with this would be to have CLOBBERs for all VLAs before the __builtin_stack_restore.
[Bug tree-optimization/96572] Failure to optimize out branch when it always results in UB from dereferencing a pointer to an undefined value set in there
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96572 Richard Biener changed: What|Removed |Added Ever confirmed|0 |1 Keywords||missed-optimization Last reconfirmed||2020-08-25 Status|UNCONFIRMED |NEW CC||msebor at gcc dot gnu.org, ||rguenth at gcc dot gnu.org --- Comment #1 from Richard Biener --- So phiprop sees [local count: 1073741824]: if (cond_4(D) != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 536870913]: [local count: 1073741824]: # q_3 = PHI <&i(2), p_5(D)(3)> _1 = *q_3; _2 = *p_5(D); _7 = _1 + _2; i ={v} {CLOBBER}; return _7; and if we extend it to handle the case of a single address PHI operand then we possibly would optimize this. After PRE we then have [local count: 1073741824]: pretmp_9 = *p_5(D); if (cond_3(D) != 0) goto ; [50.00%] else goto ; [50.00%] [local count: 536870912]: [local count: 1073741824]: # q_2 = PHI _8 = q_2 + pretmp_9; return _8; but then we're missing the optimistic copy propagation / value-numbering we do not perform because it defeats uninit warnings. So I'm not sure it is desirable to optimize this given the obvious fallout this will cause for diagnostics. After-phiprop proposed IL testcase we fail to optimize because of this: int f(int *p, _Bool cond) { int i; int q; if (cond) q = i; else q = *p; return q + *p; }
[Bug tree-optimization/96573] [10/11 Regression] Regression in optimization on x86-64 with -O3
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96573 Richard Biener changed: What|Removed |Added Priority|P3 |P2
[Bug testsuite/96574] FAIL: gcc.target/i386/pr92865-1.c scan-assembler-times vmovdq[au]16[\t ] 6
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96574 Richard Biener changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED --- Comment #5 from Richard Biener --- .
[Bug tree-optimization/96579] [8/9/10/11 Regression] ICE in gimple check: expected gimple_assign(error_mark), have gimple_nop() in gimple_assign_rhs1, at gimple.h:2605 since r7-950-g8a85cee26eabf5cf
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96579 Richard Biener changed: What|Removed |Added Status|NEW |ASSIGNED Target Milestone|--- |8.5 Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org --- Comment #3 from Richard Biener --- Probably similar to the fallout I fixed in 2c558d2655cb22f472c83e8296b5cd2a92365cd3 (PR96370) where I already suspected the real issue is still unfixed. So I'll take a second look.
[Bug tree-optimization/96586] suboptimal code generated for condition expression
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96586 Richard Biener changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever confirmed|0 |1 Last reconfirmed||2020-08-25
[Bug tree-optimization/96565] Failure to optimize out VLA even though it is left unused
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96565 --- Comment #4 from Marc Glisse --- (In reply to Richard Biener from comment #3) > I guess the "usual" way of dealing with this would be to have > CLOBBERs for all VLAs before the __builtin_stack_restore. That looks like a good idea. I didn't try to follow in a debugger why DSE fails to remove the write when those 2 builtins are present while it manages if I call __builtin_alloca_with_align directly, but I don't immediately see a reason for that difference, even in the absence of clobbers. Or maybe that's just the usual limitations of DSE (there is a branch after all...). I first thought that __builtin_stack_save/restore might need some extra attributes (advertising for instance that they do not read/write memory or let anything escape, without weakening them to the point where the compiler would move them around too much or remove them), but since the call to the opaque g does not seem to prevent DSE from removing the write, that's probably not the issue.
[Bug c++/96496] Conversion to enum with underlying type bool produces wrong result
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96496 Jonathan Wakely changed: What|Removed |Added CC||fujii.hironori at gmail dot com --- Comment #2 from Jonathan Wakely --- *** Bug 96778 has been marked as a duplicate of this bug. ***
[Bug c++/96778] static cast a integer to a enum type whose underlying type is fixed
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96778 Jonathan Wakely changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |DUPLICATE --- Comment #1 from Jonathan Wakely --- Looks like a dup of PR 96496 *** This bug has been marked as a duplicate of bug 96496 ***
[Bug c++/96591] [8/9/10/11 Regression] ICE with -flto=auto and -O1: tree code ‘typename_type’ is not supported in LTO streams
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96591 Richard Biener changed: What|Removed |Added Component|lto |c++ Target Milestone|--- |8.5 Keywords||lto --- Comment #2 from Richard Biener --- FE trees should not leak into the middle-end so it looks more like a FE issue to me. We're chasing TYPE_FIELDS of the context of the scalar_type name and visiting a TEMPLATE_DECL for 'rebind' in simd_traits. In the end this might mean free-lang-data doesn't visit DECL_CONTEXT of the INTEGER_TYPEs TYPE_NAME? At least I do not see it walking simd_traits. It might also be that some intermediate optimization somehow introduces a reference to this type from nowhere (huh).
[Bug c/96596] [11 Regression] ICE: tree check: expected class ‘type’, have ‘exceptional’ (error_mark) in match_builtin_function_types
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96596 Richard Biener changed: What|Removed |Added CC||msebor at gcc dot gnu.org Keywords||ice-on-invalid-code Target Milestone|--- |11.0
[Bug tree-optimization/96599] Failure to optimize self-stpcpy to strlen
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96599 --- Comment #2 from Richard Biener --- Might be more often a typo and say, stpcpy (a, b) was meant...
[Bug tree-optimization/96615] Failure to optimize out loop that eventually ends but has no side effects involving decrease of loop counter using an unsigned operation and the loop being done through r
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96615 Richard Biener changed: What|Removed |Added Ever confirmed|0 |1 Last reconfirmed||2020-08-25 CC||amker at gcc dot gnu.org, ||hubicka at gcc dot gnu.org, ||rguenth at gcc dot gnu.org Status|UNCONFIRMED |NEW --- Comment #1 from Richard Biener --- Even not with -ffinite-loops. The reason is that finiteness of loops is determined by frontends now and recorded in loop->finite_p but the loop only appears after tail-recursion optimization. I guess tailr could unconditionally set loop->finite_p since the stack is bounded but it relies on loop discovery and thus there's no easy way to do this (not sure if the loop is always natural). Of course niter analysis might do a better job on this kind of loop to prove finiteness ... One reason for the failure is of course that we compute Analyzing # of iterations of loop 1 exit condition 0 < [(int) ((unsigned int) bytes_7(D) + 4294967232), + , -64] bounds on difference of bases: -2147483648 ... 2147483647 result: under assumptions (int) ((unsigned int) bytes_7(D) + 4294967232) <= 2147483584 zero if (int) ((unsigned int) bytes_7(D) + 4294967295) < 0 # of iterations ((unsigned int) bytes_7(D) + 4294967295) / 64, bounded by 33554432 (set_nb_iterations_in_loop = scev_not_known)) which we throw away, not using it for loop estimates / max number of iterations computation.
[Bug tree-optimization/21137] Convert (a >> 2) & 1 != 0 into a & 4 != 0
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=21137 --- Comment #12 from CVS Commits --- The master branch has been updated by Roger Sayle : https://gcc.gnu.org/g:a0b4e42af26a85da2698e573ac8e32fa0a5709d6 commit r11-2836-ga0b4e42af26a85da2698e573ac8e32fa0a5709d6 Author: Roger Sayle Date: Tue Aug 25 10:50:48 2020 +0100 middle-end: PR tree-optimization/21137: STRIP_NOPS avoids missed optimization. PR tree-optimization/21137 is now an old enhancement request pointing out that an optimization I added back in 2006, to optimize "((x>>31)&64) != 0" as "x < 0", doesn't fire in the presence of unanticipated type conversions. The fix is to call STRIP_NOPS at the appropriate point. 2020-08-25 Roger Sayle gcc/ChangeLog PR tree-optimization/21137 * fold-const.c (fold_binary_loc) [NE_EXPR/EQ_EXPR]: Call STRIP_NOPS when checking whether to simplify ((x>>C1)&C2) != 0. gcc/testsuite/ChangeLog PR tree-optimization/21137 * gcc.dg/pr21137.c: New test.
[Bug tree-optimization/96760] [11 Regression] Faulty optimization in nested loops with -O2 since r11-2574-g6aec53ee4f75a64c
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96760 Martin Liška changed: What|Removed |Added Summary|[11 Regression] Faulty |[11 Regression] Faulty |optimization in nested |optimization in nested |loops with -O2 |loops with -O2 since ||r11-2574-g6aec53ee4f75a64c CC||marxin at gcc dot gnu.org, ||rguenth at gcc dot gnu.org --- Comment #5 from Martin Liška --- Slightly modified test-case: at pr96760.c char a = 0, f = 0, c = 5; unsigned long d = 0; int g = 0; int *e = &g; int main() { char b = 0; for (;;) { for (a = 0; a < 2; a++) { // no UB I believe if (c) { if (d != 0) __builtin_abort (); return 0; } } f = (d++, *e); } return 1; } started with r11-2574-g6aec53ee4f75a64c
[Bug middle-end/96625] Unnecessarily large assembly generated when a bit-offsetted higher-end end of a uint64_t-backed bitfield is shifted toward the high end (left) by its bit-offset
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96625 --- Comment #2 from Richard Biener --- There's no promotion on bitfields bigger than int, so yes, this would depend on the frontends. The zeroing of the upper bits is done by RTL expansion for bit-field arithmetic.
[Bug c/96629] spurious uninitialized variable warning with branches at -O1 and higher
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96629 Richard Biener changed: What|Removed |Added Last reconfirmed||2020-08-25 Ever confirmed|0 |1 Blocks||24639 Status|UNCONFIRMED |NEW Keywords||diagnostic --- Comment #1 from Richard Biener --- the control-flow analysis of the uninit warning isn't powerful enough to capture this. Referenced Bugs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=24639 [Bug 24639] [meta-bug] bug to track all Wuninitialized issues
[Bug rtl-optimization/96632] missed-optimization with conditionally unsetting bits in memory.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96632 Richard Biener changed: What|Removed |Added Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Last reconfirmed||2020-08-25 Component|target |rtl-optimization --- Comment #1 from Richard Biener --- Confirmed. A bit tricky to do I guess. There's no representation on GIMPLE we could use so it's left for RTL (unless we add bit set/clear/flip-and-test internal functions).
[Bug target/96528] [11 Regression] vector comparisons on ARM
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96528 --- Comment #2 from Marc Glisse --- (In reply to Richard Biener from comment #1) > I think that eventually vector lowering should lower > > _1 = a == 5; > _2 = b == 7; > _3 = _1 | _2; > _4 = _3 ? -1 : 0; > > to > > _31 = _1 ? -1 : 0; > _32 = _2 ? -1 : 0; > _33 = _31 | _32; > _34 = _33 == -1; _34 = _33 < 0; // for consistency with what we do elsewhere? But I think isel already handles that. > _4 = _34 ? -1 : 0; > > or so. ... on platforms like ARM. On AVX512, we clearly want to keep the bool vectors. > Conditionals are really a mess, GIMPLE and optabs do not match 1:1 > (we've rejected the idea of "splitting" VEC_COND_EXPR to > VEC_COND_{EQ,NE,...}_EXPR and making it four-operand). Forcing > vector compares to produce a bool vector result was the attempt to make > the GIMPLE IL more streamlined, but obviously the above shows that code > generation needs to be "fixed" - in this case it is vector lowering doing > "code generation" (together with the later isel pass). I wonder if doing it during isel (and updating the predicates so they advertise a==b as supported for vector lowering when a==b?-1:0 is) would be sufficient. It requires considering that a bool vector and an integer vector of the same shape are essentially the same thing on platforms that do not have true bool vectors. This way we would only need to rewrite _1 = a == 5; to _1 = a == 5 ? true : false;
[Bug analyzer/96650] [11 Regression] ICE in on_fact, at analyzer/constraint-manager.cc:1785
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96650 Richard Biener changed: What|Removed |Added Target Milestone|--- |11.0
[Bug analyzer/96646] [11 Regression] ICE: Segmentation fault (in tree_class_check)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96646 Richard Biener changed: What|Removed |Added Target Milestone|--- |11.0
[Bug c++/96645] [9/10/11 Regression] std::variant default constructor
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96645 Richard Biener changed: What|Removed |Added Target Milestone|--- |9.4
[Bug tree-optimization/96654] Failure to optimize vectorized conversion to `int` with AVX
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96654 Richard Biener changed: What|Removed |Added CC||rguenth at gcc dot gnu.org, ||rsandifo at gcc dot gnu.org Blocks||53947 --- Comment #3 from Richard Biener --- The pattern is exercised directly by BB vectorization only, loop vectorization still uses a fixed vector size. Still the assembly shows basically the same code when doing BB vectorization only: f: .LFB0: .cfi_startproc vmovupd (%rdi), %xmm1 vinsertf128 $0x1, 16(%rdi), %ymm1, %ymm0 vcvttpd2dqy %ymm0, %xmm0 vmovdqu %xmm0, (%rsi) vzeroupper ret this is probably because of some tuning (split unaligned loads, not using a memory operand for vcvttpd2dqy). With -O3 -fno-tree-loop-vectorize -march=core-avx2 I get f: .LFB0: .cfi_startproc vcvttpd2dqy (%rdi), %xmm0 vmovdqu %xmm0, (%rsi) ret Referenced Bugs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53947 [Bug 53947] [meta-bug] vectorizer missed-optimizations
[Bug libstdc++/96657] [9/10/11 Regression] libsupc++.a missing required functions from src/c++98/atomicity.cc when atomic builtins are not supported
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96657 Richard Biener changed: What|Removed |Added Target Milestone|--- |9.4 Target||sparc, arc
[Bug tree-optimization/96669] Failure to optimize shift by variable+and by 1 to test for 0
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96669 Richard Biener changed: What|Removed |Added Keywords||easyhack Status|UNCONFIRMED |NEW Last reconfirmed||2020-08-25 Ever confirmed|0 |1 --- Comment #2 from Richard Biener --- Confirmed.
[Bug tree-optimization/96671] Failure to optimize a 3 xor+and pattern to xor+andnot
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96671 Richard Biener changed: What|Removed |Added Last reconfirmed||2020-08-25 Status|UNCONFIRMED |NEW Keywords||easyhack Ever confirmed|0 |1 --- Comment #3 from Richard Biener --- Confirmed.
[Bug tree-optimization/96674] Failure to optimize combination of comparisons to dec+compare
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96674 Richard Biener changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever confirmed|0 |1 Last reconfirmed||2020-08-25
[Bug tree-optimization/96672] Missing -Wclobbered diagnostic, or: __attribute__((returns_twice)) does not inhibit constant folding across call site
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96672 Richard Biener changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever confirmed|0 |1 Keywords||wrong-code Last reconfirmed||2020-08-25 --- Comment #2 from Richard Biener --- abnormal edges are "rebuilt" during RTL expansion, we have a duplicate somewhere for this correctness bug.
[Bug tree-optimization/96679] Failure to optimize or+and+or pattern to and+or
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96679 Richard Biener changed: What|Removed |Added Keywords||easyhack Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Last reconfirmed||2020-08-25
[Bug middle-end/96680] [11 Regression][OpenMP][LTO] Declare variant + ICE in lto_fixup_prevailing_decls, at lto/lto-common.c:2595
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96680 Richard Biener changed: What|Removed |Added Target Milestone|--- |11.0
[Bug tree-optimization/96681] Failure to optimize xor of comparisons with specific constants to comparison of xor-ed of compared variables
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96681 Richard Biener changed: What|Removed |Added Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Last reconfirmed||2020-08-25
[Bug tree-optimization/96685] Failure to optimize not+sub to add+not
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96685 Richard Biener changed: What|Removed |Added Ever confirmed|0 |1 Target||x86_64-*-* i?86-*-* Last reconfirmed||2020-08-25 Status|UNCONFIRMED |NEW --- Comment #1 from Richard Biener --- It's at least a missed canonicalization as ~x + y isn't transformed to ~(x - y) either. int f(int x, int y) { return ~(x - y) + (~x + y); } should see CSE, with a minus folding to zero (that works already for some reason).
[Bug tree-optimization/96688] Failure to optimize shift-right/add+bitwise not of constant to avoid bitwise not
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96688 Richard Biener changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever confirmed|0 |1 Last reconfirmed||2020-08-25 --- Comment #2 from Richard Biener --- Confirmed. The small constants might be cheaper to code-gen though.
[Bug tree-optimization/96691] Failure to optimize bitwise not+or+xor with constants to and+xor with bitwise not-ed constants
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96691 Richard Biener changed: What|Removed |Added Last reconfirmed||2020-08-25 Status|UNCONFIRMED |NEW Ever confirmed|0 |1
[Bug rtl-optimization/96692] Failure to optimize xor+or+xor to andnot+xor
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96692 Richard Biener changed: What|Removed |Added Last reconfirmed||2020-08-25 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW
[Bug tree-optimization/96693] [11 Regression] GCC produces incorrect code with -O2 for loops
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96693 Richard Biener changed: What|Removed |Added Target Milestone|--- |11.0 Last reconfirmed||2020-08-25 Summary|GCC produces incorrect code |[11 Regression] GCC |with -O2 for loops |produces incorrect code ||with -O2 for loops Status|UNCONFIRMED |ASSIGNED Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Richard Biener --- Confirmed. Looks like caused by my store-motion rewrite.
[Bug tree-optimization/96694] Failure to optimize min/max pattern using two binary nots to min/max pattern using one binary not
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96694 Richard Biener changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2020-08-25 Ever confirmed|0 |1
[Bug tree-optimization/96693] [11 Regression] GCC produces incorrect code with -O2 for loops
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96693 --- Comment #2 from Richard Biener --- unsigned int var_4 = 140810747U; bool var_7 = (bool)0; unsigned char var_20 = (unsigned char)82; unsigned short var_22 = 42; long long int arr_9 [23] ; void __attribute__((noipa)) test(unsigned a, bool b, long long p12[23]) { for (int c = 0; c < 2;) { if (b) { for (int d = 0; d < 4082; d += 2) for (int e = 0; e < a; e = 2) var_20 = 0; var_22 = 0; } c = p12[c]; } } int main() { for (unsigned long i_0 = 0; i_0 < 23; ++i_0) arr_9 [i_0] = -722784397873599555LL; test(var_4, var_7, arr_9); if (var_22 != 42) __builtin_abort (); }
[Bug tree-optimization/96695] Failure to optimize combination of pointer comparison to nullptr and another pointer
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96695 Richard Biener changed: What|Removed |Added Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Last reconfirmed||2020-08-25 --- Comment #2 from Richard Biener --- Hmm, so we can optimize 0 > y to false, likewise 0 <= y to true. I guess we already do that so VRP should handle if (x == 0) if (x > y) already.
[Bug tree-optimization/96696] Failure to optimize div+mul to mod+sub
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96696 Richard Biener changed: What|Removed |Added Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Last reconfirmed||2020-08-25 --- Comment #1 from Richard Biener --- Confirmed. We have /* Simplify (unsigned t / 2) * 2 -> unsigned t & ~1. */ (simplify (mult (trunc_div @0 integer_pow2p@1) @1) (if (TYPE_UNSIGNED (TREE_TYPE (@0))) (bit_and @0 (negate @1
[Bug tree-optimization/96697] Failure to optimize mod+div to 0
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96697 Richard Biener changed: What|Removed |Added Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Last reconfirmed||2020-08-25 --- Comment #1 from Richard Biener --- Confirmed.
[Bug tree-optimization/96707] Failure to optimize right shift+unsigned compare of two variables optimally
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96707 Richard Biener changed: What|Removed |Added Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Last reconfirmed||2020-08-25
[Bug tree-optimization/96708] Failure to optimize max pattern with comparison when using a temporary variable
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96708 Richard Biener changed: What|Removed |Added Keywords||easyhack Last reconfirmed||2020-08-25 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW --- Comment #2 from Richard Biener --- Confirmed. _4 = MAX_EXPR ; _7 = a_2(D) <= _4; return _7;
[Bug tree-optimization/96714] Failure to optimize sqrt*sqrt of same variable with ffast-math
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96714 Richard Biener changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |WORKSFORME --- Comment #1 from Richard Biener --- Huh. (if (flag_unsafe_math_optimizations) /* Simplify sqrt(x) * sqrt(x) -> x. */ (simplify (mult (SQRT_ALL@1 @0) @1) (if (!HONOR_SNANS (type)) @0)) and it works for me, with -ffast-math as you say.
[Bug tree-optimization/96715] Failure to optimize copysign of variable by negated variable
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96715 Richard Biener changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #3 from Richard Biener --- Fixed.
[Bug target/96532] [m68k] gcc 10.x generates calls to memset even for very small amounts
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96532 --- Comment #6 from Thorsten Otto --- Created attachment 49116 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49116&action=edit Assembler output produced by gcc 11.0.0 for arm
[Bug c++/96721] [11 Regression] pseudo-destructor calls on pointers since r11-2238
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96721 Richard Biener changed: What|Removed |Added Resolution|--- |FIXED Status|NEW |RESOLVED --- Comment #5 from Richard Biener --- Fixed.
[Bug tree-optimization/96729] [11 Regression] hang on x86_64-linux-gnu with `-g -O3` since r11-39-gf9e1ea10e657af9f
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96729 Richard Biener changed: What|Removed |Added Status|NEW |ASSIGNED Target Milestone|--- |11.0 Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org Version|unknown |11.0 --- Comment #2 from Richard Biener --- Mine.
[Bug tree-optimization/96730] [10/11 Regression] ICE on x86_64-linux-gnu with `-O1` to `-O3` (in verify_sra_access_forest, at tree-sra.c:2352) since r10-6320-g5b9e89c922dc2e7e
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96730 Richard Biener changed: What|Removed |Added Keywords||ice-checking, ||ice-on-valid-code Priority|P3 |P2 Target Milestone|--- |10.3 Version|unknown |10.2.1
[Bug tree-optimization/96730] [10/11 Regression] ICE on x86_64-linux-gnu with `-O1` to `-O3` (in verify_sra_access_forest, at tree-sra.c:2352) since r10-6320-g5b9e89c922dc2e7e
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96730 --- Comment #4 from CVS Commits --- The master branch has been updated by Martin Jambor : https://gcc.gnu.org/g:556600286dd312d3ddf3d673a8579576862663e3 commit r11-2838-g556600286dd312d3ddf3d673a8579576862663e3 Author: Martin Jambor Date: Tue Aug 25 13:33:44 2020 +0200 sra: Bail out when encountering accesses with negative offsets (PR 96730) I must admit I was quite surprised to see that SRA does not disqualify an aggregate from any transformations when it encounters an offset for which get_ref_base_and_extent returns a negative offset. It may not matter too much because I sure hope such programs always have undefined behavior (SRA candidates are local variables on stack) but it is probably better not to perform weird transformations on them as build ref model with the new build_reconstructed_reference function currently happily do for negative offsets (they just copy the existing expression which is then used as the expression of a "propagated" access) and of course the compiler must not ICE (as it currently does because the SRA forest verifier does not like the expression). gcc/ChangeLog: 2020-08-24 Martin Jambor PR tree-optimization/96730 * tree-sra.c (create_access): Disqualify any aggregate with negative offset access. (build_ref_for_model): Add assert that offset is non-negative. gcc/testsuite/ChangeLog: 2020-08-24 Martin Jambor PR tree-optimization/96730 * gcc.dg/tree-ssa/pr96730.c: New test.
[Bug tree-optimization/96738] GCC generates worse assembly than clang and It fails to vectorized code compared to clang
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96738 Richard Biener changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever confirmed|0 |1 Last reconfirmed||2020-08-25 --- Comment #1 from Richard Biener --- GCC fails to SLP vectorize this because SLP discovery fails for this reduction scheme. The only think clang vectorizes seems to be the mask reduction and the store. We're not falling back to scalar operand construction for the mask and for some reason.
[Bug target/96744] [11 Regression] FAIL: gcc.target/i386/avx512bitalgvl-vpopcntb-1.c execution test
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96744 Richard Biener changed: What|Removed |Added Ever confirmed|0 |1 Last reconfirmed||2020-08-25 Version|10.2.1 |11.0 Target Milestone|--- |11.0 Status|UNCONFIRMED |NEW --- Comment #8 from Richard Biener --- Confirmed.
[Bug c/96740] frexp, modf, and remquo missing attribute nonnull
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96740 Richard Biener changed: What|Removed |Added Last reconfirmed||2020-08-25 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW --- Comment #2 from Richard Biener --- Confirmed.
[Bug lto/96752] -fwhopr feature - is it available in gcc 9.2.0
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96752 Richard Biener changed: What|Removed |Added Status|WAITING |RESOLVED Resolution|--- |INVALID --- Comment #4 from Richard Biener --- There is no -fwhopr flag.
[Bug target/96755] [11 Regression] ICE in final_scan_insn_1, at final.c:3073 with -O3 -march=skylake-avx512
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96755 Richard Biener changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #5 from Richard Biener --- .
[Bug analyzer/96763] [11 Regression] ICE in get_subregion_within_ctor, at analyzer/store.cc:379 on RANGE_EXPR index
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96763 Richard Biener changed: What|Removed |Added Target Milestone|--- |11.0
[Bug tree-optimization/96760] [11 Regression] Faulty optimization in nested loops with -O2 since r11-2574-g6aec53ee4f75a64c
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96760 Richard Biener changed: What|Removed |Added Target Milestone|--- |11.0 Last reconfirmed|2020-08-24 00:00:00 |2020-08-25 Status|UNCONFIRMED |ASSIGNED Ever confirmed|0 |1 Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org
[Bug analyzer/96764] [11 Regression] ICE in fold_convert_const_int_from_real, at fold-const.c:2038
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96764 Richard Biener changed: What|Removed |Added Target Milestone|--- |11.0
[Bug other/96628] Feature request: __attribute__((no_builtin("Foo")))
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96628 rsandifo at gcc dot gnu.org changed: What|Removed |Added CC||rsandifo at gcc dot gnu.org Last reconfirmed||2020-08-25 Status|RESOLVED|NEW Ever confirmed|0 |1 Resolution|DUPLICATE |--- --- Comment #6 from rsandifo at gcc dot gnu.org --- Not a dup.
[Bug tree-optimization/96758] [10/11 Regression] strncmp miscompiles as memcmp since r10-3920-g27c14dbc6b01d5b7
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96758 --- Comment #4 from CVS Commits --- The master branch has been updated by Jakub Jelinek : https://gcc.gnu.org/g:f982a6ec9b6d98f5f37114b1d7455c54ce5056b8 commit r11-2839-gf982a6ec9b6d98f5f37114b1d7455c54ce5056b8 Author: Jakub Jelinek Date: Tue Aug 25 13:47:10 2020 +0200 strlen: Fix handle_builtin_string_cmp [PR96758] The following testcase is miscompiled, because handle_builtin_string_cmp sees a strncmp call with constant last argument 4, where one of the strings has an upper bound of 5 bytes (due to it being an array of that size) and the other has a known string length of 1 and the result is used only in equality comparison. It is folded into __builtin_strncmp_eq (str1, str2, 4), which is incorrect, because that means reading 4 bytes from both strings and comparing that. When one of the strings has known strlen of 1, we want to compare just 2 bytes, not 4, as strncmp shouldn't compare any bytes beyond the null. So, the last argument to __builtin_strncmp_eq should be the minimum of the provided strncmp last argument and the known string length + 1 (assuming the other string has only a known upper bound due to array size). Besides that, I've noticed the code has been written with the intent to also support the case where we know exact string length of both strings (but not the string content, so we can't compute it at compile time). In that case, both cstlen1 and cstlen2 are non-negative and both arysiz1 and arysiz2 are negative. We wouldn't optimize that, cmpsiz would be either the strncmp last argument, or for strcmp the first string length, but varsiz would be -1 and thus cmpsiz would be never < varsiz. The patch fixes it by using the correct length, in that case using the minimum of the two and for strncmp also the last argument. 2020-08-25 Jakub Jelinek PR tree-optimization/96758 * tree-ssa-strlen.c (handle_builtin_string_cmp): If both cstlen1 and cstlen2 are set, set cmpsiz to their minimum, otherwise use the one that is set. If bound is used and smaller than cmpsiz, set cmpsiz to bound. If both cstlen1 and cstlen2 are set, perform the optimization. * gcc.dg/strcmpopt_12.c: New test.
[Bug c++/96776] Missing tail call optimization when passing local variable by reference to yet another function
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96776 Richard Biener changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #7 from Richard Biener --- .
[Bug analyzer/96777] [11 Regression] ICE in bind_compound_sval, at analyzer/store.cc:618
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96777 Richard Biener changed: What|Removed |Added Target Milestone|--- |11.0
[Bug tree-optimization/96722] [8/9/10/11 Regression] Clobbers on NULL since r8-1519
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96722 --- Comment #7 from CVS Commits --- The master branch has been updated by Jakub Jelinek : https://gcc.gnu.org/g:a5b15fcb954ba63d58f0daa700281aba33b5f24a commit r11-2840-ga5b15fcb954ba63d58f0daa700281aba33b5f24a Author: Jakub Jelinek Date: Tue Aug 25 13:49:40 2020 +0200 gimple: Ignore *0 = {CLOBBER} in path isolation [PR96722] Clobbers of MEM_REF with NULL address are just fancy nops, something we just ignore and don't emit any code for it (ditto for other clobbers), they just mark end of life on something, so we shouldn't infer from those that there is some UB. 2020-08-25 Jakub Jelinek PR tree-optimization/96722 * gimple.c (infer_nonnull_range): Formatting fix. (infer_nonnull_range_by_dereference): Return false for clobber stmts. * g++.dg/opt/pr96722.C: New test.
[Bug analyzer/96777] [11 Regression] ICE in bind_compound_sval, at analyzer/store.cc:618
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96777 David Malcolm changed: What|Removed |Added Status|UNCONFIRMED |ASSIGNED Ever confirmed|0 |1 Last reconfirmed||2020-08-25 --- Comment #1 from David Malcolm --- Thanks for filing this; confirmed.
[Bug tree-optimization/96779] New: Failure to optimize comparison of negative version of self
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96779 Bug ID: 96779 Summary: Failure to optimize comparison of negative version of self Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: gabravier at gmail dot com Target Milestone: --- bool f(int a) { return -a == a; } This can be optimized to `return !a;`. This transformation is done by LLVM, but not by GCC.
[Bug c++/96780] New: debuginfo for std::move and std::forward isn't useful
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96780 Bug ID: 96780 Summary: debuginfo for std::move and std::forward isn't useful Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: redi at gcc dot gnu.org Target Milestone: --- When debugging I don't want to step into std::move and std::forward, ever. They're effectively just casts, and although g++ correctly optimises them away to nothing, it leaves debuginfo that makes gdb step into them. Is there any good reason to ever step into them, or could we special case them in g++ to not emit any debuginfo, at least when inlined? I tried adding __attribute__((__always_inline__,__artificial__)) but that seemed to make it even worse.
[Bug tree-optimization/96714] Failure to optimize sqrt*sqrt of same variable with ffast-math
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96714 --- Comment #2 from Gabriel Ravier --- Hmm, I can't reproduce it either, either I was simply wrong (on something like whether I had fast math enabled) or there is some peculiarity on my setup from 6 days ago that I missed.
[Bug tree-optimization/96548] [11 Regression] ICE in compute_live_loop_exits, at tree-ssa-loop-manip.c:247 since r11-2574-g6aec53ee4f75a64c
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96548 --- Comment #7 from CVS Commits --- The master branch has been updated by Richard Biener : https://gcc.gnu.org/g:660b5c10dc04988b02a2c3f6baed013340af3ef8 commit r11-2841-g660b5c10dc04988b02a2c3f6baed013340af3ef8 Author: Richard Biener Date: Tue Aug 25 10:59:24 2020 +0200 tree-optimization/96548 - fix failure to recompute RPO after CFG change This recomputes RPO after store-motion changes the CFG. 2020-08-25 Richard Biener PR tree-optimization/96548 PR tree-optimization/96760 * tree-ssa-loop-im.c (tree_ssa_lim): Recompute RPO after store-motion. * gcc.dg/torture/pr96548.c: New testcase. * gcc.dg/torture/pr96760.c: Likewise.
[Bug tree-optimization/96760] [11 Regression] Faulty optimization in nested loops with -O2 since r11-2574-g6aec53ee4f75a64c
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96760 --- Comment #6 from CVS Commits --- The master branch has been updated by Richard Biener : https://gcc.gnu.org/g:660b5c10dc04988b02a2c3f6baed013340af3ef8 commit r11-2841-g660b5c10dc04988b02a2c3f6baed013340af3ef8 Author: Richard Biener Date: Tue Aug 25 10:59:24 2020 +0200 tree-optimization/96548 - fix failure to recompute RPO after CFG change This recomputes RPO after store-motion changes the CFG. 2020-08-25 Richard Biener PR tree-optimization/96548 PR tree-optimization/96760 * tree-ssa-loop-im.c (tree_ssa_lim): Recompute RPO after store-motion. * gcc.dg/torture/pr96548.c: New testcase. * gcc.dg/torture/pr96760.c: Likewise.
[Bug tree-optimization/96548] [11 Regression] ICE in compute_live_loop_exits, at tree-ssa-loop-manip.c:247 since r11-2574-g6aec53ee4f75a64c
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96548 Richard Biener changed: What|Removed |Added Resolution|--- |FIXED Status|ASSIGNED|RESOLVED --- Comment #8 from Richard Biener --- Fixed.
[Bug c++/96781] New: internal compiler error: Segmentation fault
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96781 Bug ID: 96781 Summary: internal compiler error: Segmentation fault Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: pengtingbit at 126 dot com Target Milestone: --- ╰─➤ uname -a 127 ↵ Linux research 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux At https://github.com/pengtingbit/concurrencpp/tree/refactor-folders, in branch refactor-folders and commit 64177ee. When using Ubuntu20.04 focal and installed GNU 10.0.1: ╰─➤ cmake .. -- The C compiler identification is GNU 10.0.1 -- The CXX compiler identification is GNU 10.0.1 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/gcc-10 - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/g++-10 - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- ### concurrencpp ### -- ### ### -- Looking for pthread.h -- Looking for pthread.h - found -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed -- Looking for pthread_create in pthreads -- Looking for pthread_create in pthreads - not found -- Looking for pthread_create in pthread -- Looking for pthread_create in pthread - found -- Found Threads: TRUE -- Found Doxygen: /usr/bin/doxygen (found version "1.8.17") found components: doxygen dot -- Configuring done -- Generating done -- Build files have been written to: /home/pengting/git/concurrencpp/build ╭─pengting@research ~/git/concurrencpp/build ‹refactor-folders*› ╰─➤ make Scanning dependencies of target concurrencpp [ 7%] Building CXX object src/CMakeFiles/concurrencpp.dir/executors/executor.cpp.o [ 15%] Building CXX object src/CMakeFiles/concurrencpp.dir/runtime/runtime.cpp.o [ 23%] Building CXX object src/CMakeFiles/concurrencpp.dir/threads/thread.cpp.o [ 30%] Building CXX object src/CMakeFiles/concurrencpp.dir/results/result_core.cpp.o [ 38%] Building CXX object src/CMakeFiles/concurrencpp.dir/executors/manual_executor.cpp.o [ 46%] Building CXX object src/CMakeFiles/concurrencpp.dir/executors/thread_executor.cpp.o [ 53%] Building CXX object src/CMakeFiles/concurrencpp.dir/executors/thread_pool_executor.cpp.o [ 61%] Building CXX object src/CMakeFiles/concurrencpp.dir/executors/worker_thread_executor.cpp.o [ 69%] Building CXX object src/CMakeFiles/concurrencpp.dir/timers/Timer_queue.cpp.o [ 76%] Building CXX object src/CMakeFiles/concurrencpp.dir/timers/timer.cpp.o In file included from /home/pengting/git/concurrencpp/src/timers/timer.cpp:3: /home/pengting/git/concurrencpp/src/timers/../../include/executors/executor.h: In instantiation of ‘static concurrencpp::null_result concurrencpp::Executor::post_bridge(concurrencpp::executor_tag, concurrencpp::Executor*, decayed_type) [with callable_type = concurrencpp::details::timer_state_base::fire()::; decayed_type = concurrencpp::details::timer_state_base::fire()::]’: /home/pengting/git/concurrencpp/src/timers/../../include/executors/executor.h:68:30: required from ‘void concurrencpp::Executor::post(callable_type&&) [with callable_type = concurrencpp::details::timer_state_base::fire()::]’ /home/pengting/git/concurrencpp/src/timers/timer.cpp:37:3: required from here /home/pengting/git/concurrencpp/src/timers/../../include/executors/executor.h:23:3: internal compiler error: Segmentation fault 23 | } | ^ Please submit a full bug report, with preprocessed source if appropriate. See for instructions. make[2]: *** [src/CMakeFiles/concurrencpp.dir/build.make:199: src/CMakeFiles/concurrencpp.dir/timers/timer.cpp.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:190: src/CMakeFiles/concurrencpp.dir/all] Error 2 make: *** [Makefile:103: all] Error 2 # # At https://github.com/pengtingbit/concurrencpp/tree/refactor-folders, in branch refactor-folders and commit b7c04e5. When using Ubuntu20.04 focal and gcc-snapshot: ╰─➤ LD_LIBRARY_PATH=/usr/lib/gcc-snapshot/lib:$LD_LIBRARY_PATH ╰─➤ PATH=/usr/lib/gcc-snapshot/bin:$PATH ╰─➤ which gcc /usr/lib/gcc-snapshot/bin/gcc ╰─➤ gcc --version gcc (Ubuntu 20200418-1ubuntu1) 10.0.1 20200418 (experimental) [master revision b57e1621eb7:e6f26876f0c:baf3b9b2e5259558ef86bd62398e2ccecd7a4a4c] Copyright (C) 2020 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ╰
[Bug tree-optimization/96760] [11 Regression] Faulty optimization in nested loops with -O2 since r11-2574-g6aec53ee4f75a64c
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96760 Richard Biener changed: What|Removed |Added Resolution|--- |FIXED Status|ASSIGNED|RESOLVED --- Comment #7 from Richard Biener --- Fixed.
[Bug tree-optimization/96782] New: Failure to optimize comparison with bitwise not-ed with self
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96782 Bug ID: 96782 Summary: Failure to optimize comparison with bitwise not-ed with self Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: gabravier at gmail dot com Target Milestone: --- bool f(int a) { return a == ~a; } This can be optimized to `return false;`. This transformation is done by LLVM, but not by GCC.
[Bug tree-optimization/96783] New: [11 Regression] std::rotate miscompiled
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96783 Bug ID: 96783 Summary: [11 Regression] std::rotate miscompiled Product: gcc Version: 11.0 Status: UNCONFIRMED Keywords: wrong-code Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: redi at gcc dot gnu.org CC: rguenth at gcc dot gnu.org Target Milestone: --- This is miscompiled at -O3 since r11-1897 and dies with a segfault: #include #include #include int main() { std::vector> c{{1,2}, {3,4}, {5,6}, {7,8}, {9,10}}; std::rotate(c.begin(), c.begin() + 3, c.end()); for (auto v : c) { for (auto i : v) std::cout << i << ' '; std::cout << '\n'; } std::cout << '\n'; std::vector> c2{{7,8}, {9,10}, {1,2}, {3,4}, {5,6}}; if (c != c2) throw 1; }
[Bug c++/96591] [8/9/10/11 Regression] ICE with -flto=auto and -O1: tree code ‘typename_type’ is not supported in LTO streams
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96591 Jakub Jelinek changed: What|Removed |Added CC||jakub at gcc dot gnu.org Keywords|needs-bisection | --- Comment #3 from Jakub Jelinek --- Started with r206639.
[Bug c++/96781] internal compiler error: Segmentation fault
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96781 Ting Peng changed: What|Removed |Added CC||pengtingbit at 126 dot com --- Comment #1 from Ting Peng --- Created attachment 49118 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49118&action=edit the build files by cmake mkdir build cd build cmake .. make
[Bug tree-optimization/96783] [11 Regression] std::rotate miscompiled
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96783 --- Comment #1 from Jonathan Wakely --- Created attachment 49117 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49117&action=edit gzipped preprocessed source
[Bug tree-optimization/96779] Failure to optimize comparison of negative version of self
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96779 Richard Biener changed: What|Removed |Added Last reconfirmed||2020-08-25 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW --- Comment #1 from Richard Biener --- Confirmed.
[Bug c++/96781] internal compiler error: Segmentation fault
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96781 Richard Biener changed: What|Removed |Added Last reconfirmed||2020-08-25 Status|UNCONFIRMED |WAITING Ever confirmed|0 |1
[Bug c++/96781] internal compiler error: Segmentation fault
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96781 --- Comment #2 from Richard Biener --- gcc (Ubuntu 20200418-1ubuntu1) 10.0.1 20200418 (experimental) is a quite old prerelease. Please update and re-try. We also need preprocessed source as a reproducer.
[Bug tree-optimization/96783] [11 Regression] std::rotate miscompiled
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96783 Richard Biener changed: What|Removed |Added Ever confirmed|0 |1 Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org Target Milestone|--- |11.0 Last reconfirmed||2020-08-25 Status|UNCONFIRMED |ASSIGNED --- Comment #2 from Richard Biener --- Meh. Don't you have a C testcase ;)
[Bug tree-optimization/96782] Failure to optimize comparison with bitwise not-ed with self
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96782 Richard Biener changed: What|Removed |Added Ever confirmed|0 |1 Last reconfirmed||2020-08-25 Status|UNCONFIRMED |NEW --- Comment #1 from Richard Biener --- Confirmed.
[Bug c++/96780] debuginfo for std::move and std::forward isn't useful
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96780 Marek Polacek changed: What|Removed |Added Last reconfirmed||2020-08-25 Status|UNCONFIRMED |NEW Ever confirmed|0 |1 CC||mpolacek at gcc dot gnu.org
[Bug tree-optimization/96729] [11 Regression] hang on x86_64-linux-gnu with `-g -O3` since r11-39-gf9e1ea10e657af9f
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96729 Richard Biener changed: What|Removed |Added CC||aoliva at gcc dot gnu.org, ||jakub at gcc dot gnu.org --- Comment #3 from Richard Biener --- I can't reproduce this. Well, -O3 -g takes way longer but that's because we elide the stores to a, b, d and e since the loop is endless and then we unroll it all ending up with a basic-block with just ~2 useless debug stmts. So we now optimize as expected. -gno-statement-frontiers makes it also compiled fast. Now the question is whether we may want to do anything about a BB like [local count: 1804255]: [t.c:4:3] # DEBUG BEGIN_STMT [t.c:5:5] # DEBUG BEGIN_STMT [t.c:6:5] # DEBUG BEGIN_STMT [t.c:10:7] # DEBUG BEGIN_STMT [t.c:11:7] # DEBUG BEGIN_STMT [t.c:11:14] # DEBUG BEGIN_STMT [t.c:12:9] # DEBUG BEGIN_STMT [t.c:13:9] # DEBUG BEGIN_STMT [t.c:13:16] # DEBUG BEGIN_STMT [t.c:14:13] # DEBUG g => NULL [t.c:14:11] # DEBUG BEGIN_STMT [t.c:14:13] # DEBUG g => 0 [t.c:15:11] # DEBUG BEGIN_STMT [t.c:15:19] [t.c:15:15] [t.c:15:12] c[0][0] = 3; [t.c:13:23] # DEBUG BEGIN_STMT [t.c:13:16] # DEBUG BEGIN_STMT [t.c:11:22] # DEBUG BEGIN_STMT [t.c:11:14] # DEBUG BEGIN_STMT [t.c:12:9] # DEBUG BEGIN_STMT [t.c:13:9] # DEBUG BEGIN_STMT [t.c:13:16] # DEBUG BEGIN_STMT [t.c:14:13] # DEBUG g => NULL [t.c:14:11] # DEBUG BEGIN_STMT [t.c:14:13] # DEBUG g => 0 [t.c:15:11] # DEBUG BEGIN_STMT [t.c:13:23] # DEBUG BEGIN_STMT [t.c:13:16] # DEBUG BEGIN_STMT [t.c:11:22] # DEBUG BEGIN_STMT [t.c:11:14] # DEBUG BEGIN_STMT [t.c:12:9] # DEBUG BEGIN_STMT [t.c:13:9] # DEBUG BEGIN_STMT [t.c:13:16] # DEBUG BEGIN_STMT [t.c:14:13] # DEBUG g => NULL [t.c:14:11] # DEBUG BEGIN_STMT [t.c:14:13] # DEBUG g => 0 [t.c:15:11] # DEBUG BEGIN_STMT [t.c:13:23] # DEBUG BEGIN_STMT [t.c:13:16] # DEBUG BEGIN_STMT [t.c:11:22] # DEBUG BEGIN_STMT [t.c:11:14] # DEBUG BEGIN_STMT [t.c:12:9] # DEBUG BEGIN_STMT [t.c:13:9] # DEBUG BEGIN_STMT [t.c:13:16] # DEBUG BEGIN_STMT [t.c:14:13] # DEBUG g => NULL [t.c:14:11] # DEBUG BEGIN_STMT [t.c:14:13] # DEBUG g => 0 ... [t.c:15:11] # DEBUG BEGIN_STMT [t.c:15:19] [t.c:15:15] [t.c:15:12] c[1][0] = 3; [t.c:13:23] # DEBUG BEGIN_STMT [t.c:13:16] # DEBUG BEGIN_STMT [t.c:11:22] # DEBUG BEGIN_STMT [t.c:11:14] # DEBUG BEGIN_STMT ... I understand that it is not as simple as simply killing adjacent DEBUG BEGIN_STMT stmts, keeping only the last?
[Bug tree-optimization/96729] [11 Regression] hang on x86_64-linux-gnu with `-g -O3` since r11-39-gf9e1ea10e657af9f
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96729 --- Comment #4 from Richard Biener --- Samples: 7K of event 'cycles:u', Event count (approx.): 7668407627 Overhead Command Shared Object Symbol 26.63% cc1 cc1 [.] dwarf2out_next_real_insn 9.81% cc1 cc1 [.] is_a_helper::test guess there's some quadraticness here, walking the insn stream more times than necessary.
[Bug tree-optimization/96693] [11 Regression] GCC produces incorrect code with -O2 for loops
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96693 Richard Biener changed: What|Removed |Added Resolution|--- |DUPLICATE Status|ASSIGNED|RESOLVED --- Comment #3 from Richard Biener --- Actually the same as PR96760, too. *** This bug has been marked as a duplicate of bug 96760 ***
[Bug tree-optimization/96760] [11 Regression] Faulty optimization in nested loops with -O2 since r11-2574-g6aec53ee4f75a64c
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96760 Richard Biener changed: What|Removed |Added CC||vsevolod.livinskij at frtk dot ru --- Comment #8 from Richard Biener --- *** Bug 96693 has been marked as a duplicate of this bug. ***
[Bug tree-optimization/96783] [11 Regression] std::rotate miscompiled
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96783 --- Comment #3 from Jonathan Wakely --- Created attachment 49119 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49119&action=edit preprocessed source, slightly reduced