[Bug target/112980] 64-bit powerpc ELFv2 does not allow nops to be generated before function global entry point

2024-04-11 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112980 --- Comment #16 from Michael Matz --- (In reply to Kewen Lin from comment #15) > I agree, thanks for the comments! btw, I'm not fighting for the current > implementation, just want to know more details why users are unable to make > use of the

[Bug target/112980] 64-bit powerpc ELFv2 does not allow nops to be generated before function global entry point

2024-04-09 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112980 --- Comment #14 from Michael Matz --- (In reply to Kewen Lin from comment #13) > (In reply to Giuliano Belinassi from comment #12) > > With your patch we have: > > > > > .LPFE0: > > > ... > > Which seems what is expected. > > Hi Giuliano,

[Bug target/113874] GNU2 TLS descriptor calls do not follow psABI on x86_64-linux-gnu

2024-02-12 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113874 --- Comment #31 from Michael Matz --- (In reply to H.J. Lu from comment #30) > (In reply to Michael Matz from comment #29) > > It not only can call malloc. As the backtrace of H.J. shows, it quite > > clearly _does_ so :-) > > ld.so can only

[Bug target/113874] GNU2 TLS descriptor calls do not follow psABI on x86_64-linux-gnu

2024-02-12 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113874 --- Comment #29 from Michael Matz --- It not only can call malloc. As the backtrace of H.J. shows, it quite clearly _does_ so :-) That's why there is talk earlier in this report about potentially not using malloc as one-time allocator for

[Bug target/112980] 64-bit powerpc ELFv2 does not allow nops to be generated before function global entry point

2024-01-18 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112980 --- Comment #3 from Michael Matz --- (In reply to Kewen Lin from comment #1) > > As Segher's review comments in [2], to support "before NOPs" before global > entry and "after NOPs" after global entry, Just to be perfectly clear here: the

[Bug target/99888] Add powerpc ELFv2 support for -fpatchable-function-entry*

2024-01-17 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99888 Michael Matz changed: What|Removed |Added CC||matz at gcc dot gnu.org --- Comment #15

[Bug tree-optimization/113372] wrong code with _BitInt() arithmetics at -O1

2024-01-15 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113372 --- Comment #16 from Michael Matz --- A general remark: in principle I don't see problems with undoing a little CSE, as proposed. I.e. for each SSA name use, see if it (trivially, or conservatively or optimistically) refers to an address of a

[Bug middle-end/88345] -Os overrides -falign-functions=N on the command line

2023-12-06 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88345 --- Comment #21 from Michael Matz --- (In reply to Jan Hubicka from comment #20) > > > > Live patching (user-space) doesn't depend on any particular alignment of > > functions, on x86-64 at least. (The plan for other architectures wouldn't >

[Bug middle-end/88345] -Os overrides -falign-functions=N on the command line

2023-12-06 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88345 --- Comment #19 from Michael Matz --- (In reply to Jan Hubicka from comment #18) > Reading all the discussion again, I am leaning towards -falign-all-functions > + documentation update explaining that -falign-functions/-falign-loops are >

[Bug target/111591] ppc64be: miscompilation with -mstrict-align / -O3

2023-10-23 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111591 Michael Matz changed: What|Removed |Added CC||matz at gcc dot gnu.org --- Comment #28

[Bug middle-end/88345] -Os overrides -falign-functions=N on the command line

2023-09-12 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88345 Michael Matz changed: What|Removed |Added CC||matz at gcc dot gnu.org --- Comment #16

[Bug target/110899] RFE: Attributes preserve_most and preserve_all

2023-08-08 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110899 --- Comment #11 from Michael Matz --- (In reply to Florian Weimer from comment #10) > (In reply to Michael Matz from comment #9) > > > > I don't see how that helps. Imagine a preserve_all function foo that > > > > calls > > > > printf. How

[Bug target/110899] RFE: Attributes preserve_most and preserve_all

2023-08-07 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110899 --- Comment #9 from Michael Matz --- (In reply to Florian Weimer from comment #8) > (In reply to Michael Matz from comment #7) > > > > Does the clang implementation take into account the various problematic > > > > cases that arise when calling

[Bug target/110899] RFE: Attributes preserve_most and preserve_all

2023-08-07 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110899 --- Comment #7 from Michael Matz --- (In reply to Florian Weimer from comment #5) > > It also makes argument registers be callee-saved, which is very > > unconventional. > > Isn't this done for the this pointer in some C++ ABIs? There are

[Bug target/110899] RFE: Attributes preserve_most and preserve_all

2023-08-07 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110899 --- Comment #4 from Michael Matz --- (In reply to Florian Weimer from comment #2) > I tried to write up something for the x86-64 psABI: > > Document the ABI for __preserve_most__ function calls >

[Bug target/110899] RFE: Attributes preserve_most and preserve_all

2023-08-07 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110899 --- Comment #3 from Michael Matz --- Huh, since when does clang implement this? See also https://gcc.gnu.org/pipermail/gcc-patches/2023-July/624004.html where I asked for comments about a similar, but not same, mechanism. I came from the

[Bug middle-end/110728] should __attribute__((cleanup())) callback get invoked for indirect edges of asm goto

2023-08-03 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110728 --- Comment #11 from Michael Matz --- (In reply to Michael Matz from comment #9) > Just for completeness: I agree with Andrew that the initial code example in > comment #0 doesn't show any problem. The edge from asmgoto to l0 doesn't > cross >

[Bug middle-end/110728] should __attribute__((cleanup())) callback get invoked for indirect edges of asm goto

2023-08-03 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110728 Michael Matz changed: What|Removed |Added CC||matz at gcc dot gnu.org --- Comment #9

[Bug target/108742] Incorrect constant folding with (or exposed by) -fexcess-precision=standard

2023-02-09 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108742 --- Comment #10 from Michael Matz --- (In reply to Jakub Jelinek from comment #9) > (In reply to Michael Matz from comment #7) > > (In reply to Jakub Jelinek from comment #5) > > > https://eel.is/c++draft/cfloat.syn points to the C standard for

[Bug target/108742] Incorrect constant folding with (or exposed by) -fexcess-precision=standard

2023-02-09 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108742 --- Comment #8 from Michael Matz --- (In reply to Michael Matz from comment #7) > So, my interpretation is that unsuffixed "4.2" has to be the double constant > 4.2 (in IEEE double aka 0x1.0cccdp+2), which is then, because of >

[Bug target/108742] Incorrect constant folding with (or exposed by) -fexcess-precision=standard

2023-02-09 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108742 --- Comment #7 from Michael Matz --- (In reply to Jakub Jelinek from comment #5) > https://eel.is/c++draft/cfloat.syn points to the C standard for > FLT_EVAL_METHOD > (plus https://eel.is/c++draft/expr#pre-6 talks about excess precision too) >

[Bug target/108742] Incorrect constant folding with (or exposed by) -fexcess-precision=standard

2023-02-09 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108742 --- Comment #3 from Michael Matz --- (In reply to Jakub Jelinek from comment #2) > Note, internally in standard excess precision, 4.2 seen by the lexer is > actually > EXCESS_PRECISION , Then _that_ is the problem. The literal "4.2" simply is

[Bug middle-end/108742] New: Incorrect constant folding with (or exposed by) -fexcess-precision=standard

2023-02-09 Thread matz at gcc dot gnu.org via Gcc-bugs
: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: matz at gcc dot gnu.org Target Milestone: --- This came from a discussion about a user wondering why g++ behaved different between GCC 12 and GCC 13, regarding

[Bug c/106571] Implement -Wsection diag

2022-08-10 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106571 Michael Matz changed: What|Removed |Added CC||matz at gcc dot gnu.org --- Comment #4

[Bug fortran/106353] [suboptimal] Why is a 3D array initialized, use case 2 two-layer loop?

2022-07-19 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106353 --- Comment #2 from Michael Matz --- True, but in this case it could also be emitted in a better way by the fortran frontend.

[Bug tree-optimization/106192] [11/12/13 Regression] ICE in vect_loop_versioning, at tree-vect-loop-manip.cc:3522

2022-07-05 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106192 --- Comment #3 from Michael Matz --- (In reply to Michael Matz from comment #2) > see why it should be. If GIMP_SIMD_LANE has properties that make this > transformation invalid I would argue that those properties are correctly "are _not_" I

[Bug tree-optimization/106192] [11/12/13 Regression] ICE in vect_loop_versioning, at tree-vect-loop-manip.cc:3522

2022-07-05 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106192 --- Comment #2 from Michael Matz --- Unroll-and-jam simply unrolls the outer loop and merged all resulting inner-loop bodies. In this situation we have (before unroll-and-jam): outerloop(i_1) { _12 = i_1 <= 59 innerloop(i_1, j by 1) {

[Bug c++/105169] Compiling C++ code with -fpatchable-function-entry=16,14 results in references to discarded sections

2022-04-07 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105169 Michael Matz changed: What|Removed |Added CC||matz at gcc dot gnu.org --- Comment #8

[Bug middle-end/104721] currently_expanding_gimple_stmt isn't cleared properly

2022-03-01 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104721 --- Comment #2 from Michael Matz --- Is there a testcase where you noticed this, or was it just reading code?

[Bug tree-optimization/104543] [9/10/11 Regression] wrong code at -O3 on x86_64-linux-gnu

2022-02-15 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104543 --- Comment #11 from Michael Matz --- (In reply to Richard Biener from comment #5) > in particular the comment in bb_prevents_fusion_p saying > > /* BB is duplicated by outer unrolling and then all N-1 first copies > move into the body

[Bug demangler/99188] cxxfilt may exist a uaf

2021-12-06 Thread matz at gcc dot gnu.org via Gcc-bugs
|RESOLVED CC||matz at gcc dot gnu.org --- Comment #7 from Michael Matz --- Actually, it _is_ fixed. This problem report is about version 2.26, which is many years old. Current versions don't have this problem, at the very least when

[Bug c++/102067] SEGFAULT in varpool_node::get_constructor during lto1 when optimising or not using debug symbols

2021-08-25 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102067 Michael Matz changed: What|Removed |Added CC||matz at gcc dot gnu.org --- Comment #8

[Bug target/102024] [12 Regression] zero width bitfields and ABIs

2021-08-24 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102024 --- Comment #8 from Michael Matz --- The only thing the x86-64 psABI says about this case is "'Unnamed bit-fields' types do not affect the alignment of a structure or union." . (zero-width bit-fields are _always_ unnamed) But the x86-64 psABI

[Bug middle-end/100394] wrong-code with EH and pure/const functions

2021-05-03 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100394 --- Comment #4 from Michael Matz --- That then still shows problems with the pure function and -O2, but with standard C++ this then works: struct S { int foo(int i) const { if (i) throw 42; return 0; } }; int __attribute__((noinline))

[Bug middle-end/100394] wrong-code with EH and pure/const functions

2021-05-03 Thread matz at gcc dot gnu.org via Gcc-bugs
||matz at gcc dot gnu.org --- Comment #3 from Michael Matz --- That's simply invalid C++. A rethrow (which is what a 'throw' without value is) can only be done from within a catch. You need to throw a value: ... int __attribute__((pure,noinline)) foo () { if (x) throw 42; return y; } ...

[Bug target/100077] x86: by-value floating point array in struct - xmm regs spilling to stack

2021-04-14 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100077 --- Comment #2 from Michael Matz --- Yeah, to solve this fully requires representing the parameter passing in a better way, one that can be (a) used on the gimple side (where the code is already generated assuming the vec3a params go into

[Bug driver/99896] g++ drops -lc

2021-04-06 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99896 Michael Matz changed: What|Removed |Added CC||matz at gcc dot gnu.org --- Comment #7

[Bug tree-optimization/99101] optimization bug with -ffinite-loops

2021-03-03 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99101 --- Comment #22 from Michael Matz --- Over the last days I came to a similar conclusion. Control dependence as defined with postdoms doesn't capture the number of invocations of an instruction, just wether it's invoked at all. I.e. paths with

[Bug tree-optimization/99101] optimization bug with -ffinite-loops

2021-02-25 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99101 --- Comment #19 from Michael Matz --- (In reply to Michael Matz from comment #18) > But there are other blocks control dependend on bb4, namely bb5 and bb9. > To see this observe that bb9 doesn't pdom bb4, but there's a path from bb4 to > bb9

[Bug tree-optimization/99101] optimization bug with -ffinite-loops

2021-02-25 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99101 --- Comment #18 from Michael Matz --- (In reply to Richard Biener from comment #11) > (In reply to Richard Biener from comment #10) > > Created attachment 50248 [details] > > dot of the CFG as CD-DCE sees it > > (gdb) p debug_dominance_info

[Bug tree-optimization/99101] optimization bug with -ffinite-loops

2021-02-25 Thread matz at gcc dot gnu.org via Gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99101 --- Comment #17 from Michael Matz --- (In reply to Richard Biener from comment #16) > Of course since -ffinite-loops and the C++ standard require forward progress > here and all testcases expect the loop to not terminate we're in the realm > of

[Bug target/96895] ABI of returning V1DF differs between GCC and clang

2020-09-02 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96895 --- Comment #7 from Michael Matz --- (In reply to Richard Biener from comment #5) > So vector types with element type T and N, a power-of-two, not otherwise > specified are passes the same as > > struct S { T a[N] }; > > ? No. structs, if

[Bug target/96895] ABI of returning V1DF differs between GCC and clang

2020-09-02 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96895 --- Comment #2 from Michael Matz --- The psABI doesn't say anything about such types, no. Maybe it could in some additional info pages, but it's always a problem to codify behaviour retroactively in it, when conflicting implementations already

[Bug bootstrap/96794] --with-build-config=bootstrap-lto-lean with --enable-link-mutex leads to poor LTRANS utilization

2020-08-26 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96794 --- Comment #11 from Michael Matz --- (In reply to Jan Hubicka from comment #10) > > We could also punt: when enable-link-mutex we could artificially up the job > > number for make to account for the waiting link steps. I.e. when normally > >

[Bug bootstrap/96794] --with-build-config=bootstrap-lto-lean with --enable-link-mutex leads to poor LTRANS utilization

2020-08-26 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96794 --- Comment #9 from Michael Matz --- We could also punt: when enable-link-mutex we could artificially up the job number for make to account for the waiting link steps. I.e. when normally -jN was given, the link step could be done under -j(N +

[Bug target/96373] SVE miscompilation on vectorized division loop, leading to FP exception

2020-08-05 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96373 --- Comment #11 from Michael Matz --- (In reply to rguent...@suse.de from comment #9) > How do we represent sNaNs with -fnon-call-exceptions? That is, I think we're currently simply buggy at various stages as soon as sNaNs are involved _and_

[Bug target/96373] SVE miscompilation on vectorized division loop, leading to FP exception

2020-08-05 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96373 --- Comment #10 from Michael Matz --- (In reply to Andreas Schwab from comment #5) > > Just note that _all_ floating point operations, not just divisions, can trap > > (without fast-math). You never know if the user enabled stops for any of > >

[Bug target/96373] SVE miscompilation on vectorized division loop, leading to FP exception

2020-08-04 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96373 --- Comment #3 from Michael Matz --- (In reply to Richard Biener from comment #2) > which means for non-memory gimple_could_trap_p (stmt) - sth you can > easily check I guess. Just note that _all_ floating point operations, not just divisions,

[Bug target/96373] New: SVE miscompilation on vectorized division loop, leading to FP exception

2020-07-29 Thread matz at gcc dot gnu.org
: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: matz at gcc dot gnu.org Target Milestone: --- I believe gcc-10 miscompiles the following program when SVE and vectorization are enabled. You need glibc to show

[Bug inline-asm/94522] Enhancement request: asm goto with outputs

2020-04-07 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94522 --- Comment #3 from Michael Matz --- See the llvm link of the respective patch. They specify that the outputs are reliable only on the fallthrough (i.e. no goto taken) path (in particular the outputs might or might not have been changed on the

[Bug testsuite/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

2020-04-01 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91626 --- Comment #7 from Michael Matz --- I've added it verbatim from PR48622, which itself was an autoreduced testcase for an ICE, at the time preventing bootstrapping. I haven't verified if making the testcase conforming C (i.e. provide a

[Bug c++/92662] change in gcc 8 vs 9: call of overloaded ‘basic_string()’ is ambiguous

2020-01-30 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92662 --- Comment #8 from Michael Matz --- >From the GCC perspective, yes. From the standard-is-surprising perspective, no, but that probably doesn't belong to the GCC bugzilla. So, yeah, can be closed for gcc 9 (theoretically it's still a bug in

[Bug middle-end/90348] [8/9/10 Regression] Partition of char arrays is incorrect in some cases

2020-01-23 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90348 --- Comment #18 from Michael Matz --- (In reply to Alexander Monakov from comment #17) > I think part of the problem is trying to make "deaths" explicit via CLOBBERs > without making "births" also explicit in the IR. Yes, that's basically the

[Bug target/93270] [8/9/10 Regression] DSE removes store incorrectly

2020-01-21 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93270 Michael Matz changed: What|Removed |Added CC||matz at gcc dot gnu.org --- Comment #5

[Bug target/92821] Miscompilation when passing 8-bit enum to extern function

2019-12-05 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92821 --- Comment #5 from Michael Matz --- Yes, we (intentionally) haven't required any extensions to happen for arguments or return values smaller than 64bit (e.g. we haven't even specified that arguments <= 32bit would be zero-extended in the high

[Bug c++/92662] change in gcc 8 vs 9: call of overloaded ‘basic_string()’ is ambiguous

2019-11-26 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92662 --- Comment #6 from Michael Matz --- (In reply to Jonathan Wakely from comment #5) > > Before choosing which conversion operator to use, the compiler considers the > constructors of S, finding S(const S&) and S(S&&) as candidates. There is a >

[Bug c++/92662] change in gcc 8 vs 9: call of overloaded ‘basic_string()’ is ambiguous

2019-11-26 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92662 --- Comment #4 from Michael Matz --- Even though bugzilla isn't really for educating people, I'd still like to ask why the two conversion sequences are deemed either incomparable or equal. In S b { moveme(t) }; the return value of moveme()

[Bug c++/92662] change in gcc 8 vs 9: call of overloaded ‘basic_string()’ is ambiguous

2019-11-25 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92662 --- Comment #1 from Michael Matz --- I _think_ a reduced program would be this: - template struct remove_ref { typedef _Tp type; }; template struct remove_ref<_Tp&> { typedef _Tp type; }; template struct

[Bug c++/92662] New: change in gcc 8 vs 9: call of overloaded ‘basic_string()’ is ambiguous

2019-11-25 Thread matz at gcc dot gnu.org
Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: matz at gcc dot gnu.org Target Milestone: --- A user of ours noted a difference in behaviour between gcc8 and gcc9 regarding braced initializers. Take

[Bug middle-end/90796] [8/9 Regression] GCC: O2 vs O3 output differs on simple test

2019-11-20 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90796 --- Comment #17 from Michael Matz --- Author: matz Date: Wed Nov 20 16:51:10 2019 New Revision: 278512 URL: https://gcc.gnu.org/viewcvs?rev=278512=gcc=rev Log: Fix PR90796 PR middle-end/90796 * gimple-loop-jam.c

[Bug middle-end/90796] [8/9 Regression] GCC: O2 vs O3 output differs on simple test

2019-11-20 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90796 --- Comment #16 from Michael Matz --- (In reply to Jakub Jelinek from comment #14) > Time to backport now? Hmpf, I've actually done the regstrapping for gcc9 already but then forgot to submit. Thanks for the reminder.

[Bug middle-end/90796] [8/9 Regression] GCC: O2 vs O3 output differs on simple test

2019-10-22 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90796 Michael Matz changed: What|Removed |Added Summary|[8/9/10 Regression] GCC: O2 |[8/9 Regression] GCC: O2 vs

[Bug middle-end/90796] [8/9/10 Regression] GCC: O2 vs O3 output differs on simple test

2019-10-22 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90796 --- Comment #12 from Michael Matz --- Author: matz Date: Tue Oct 22 12:25:03 2019 New Revision: 277287 URL: https://gcc.gnu.org/viewcvs?rev=277287=gcc=rev Log: Fix PR middle-end/90796 PR middle-end/90796 * gimple-loop-jam.c

[Bug rtl-optimization/91898] [optimization] switch statements for state machines could be better

2019-09-25 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91898 --- Comment #3 from Michael Matz --- For purposes of discussion, let's make a full example: % cat ex.c int get(int); int foo (int a, int *ary) { //void *labelsy[] = {&, &, &, &_end}; //int ary[] = {0, 1, 2, 3}; int i = 0; int ret = 0;

[Bug rtl-optimization/91898] [optimization] switch statements for state machines could be better

2019-09-25 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91898 Michael Matz changed: What|Removed |Added CC||matz at gcc dot gnu.org --- Comment #2

[Bug middle-end/91358] Wrong code with dynamic allocation and optional like class

2019-08-08 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91358 --- Comment #7 from Michael Matz --- (In reply to Antony Polukhin from comment #6) > (In reply to Michael Matz from comment #3) > > I don't really see any, no good idea here :-/ > > How about moving all the optimizations based on reading

[Bug middle-end/90796] [8/9/10 Regression] GCC: O2 vs O3 output differs on simple test

2019-08-07 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90796 --- Comment #11 from Michael Matz --- (In reply to rguent...@suse.de from comment #10) > >It's the only affine functions that don't progress with each iteration. > > I > >think, at least :) > > Hm. At least we analyze wrapping ones, but I guess

[Bug middle-end/90796] [8/9/10 Regression] GCC: O2 vs O3 output differs on simple test

2019-08-06 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90796 --- Comment #9 from Michael Matz --- (In reply to rguent...@suse.de from comment #8) > >The fun thing is, there's a difference between these two loop nests: > > > > for (i) for (j) a[i][0] = f(a[i+1][0]); > > for (i) for (j) b[i][j] =

[Bug middle-end/91358] Wrong code with dynamic allocation and optional like class

2019-08-06 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91358 --- Comment #3 from Michael Matz --- (In reply to Antony Polukhin from comment #2) > (In reply to Michael Matz from comment #1) > Valgrind complains are distracting. GDB entering the destructor is > missleading. Is there a simple way to change

[Bug middle-end/91358] Wrong code with dynamic allocation and optional like class

2019-08-05 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91358 Michael Matz changed: What|Removed |Added CC||matz at gcc dot gnu.org --- Comment #1

[Bug tree-optimization/91240] [8/9/10 Regression] Wrong code with -O3 due to unroll and jam pass

2019-08-05 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91240 --- Comment #3 from Michael Matz --- Also fixed by the patch at PR90796.

[Bug middle-end/90796] [8/9/10 Regression] GCC: O2 vs O3 output differs on simple test

2019-08-05 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90796 --- Comment #7 from Michael Matz --- Created attachment 46675 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=46675=edit potential patch Actually I was barking up the wrong tree. It's not as easy as the CFG manipulation for loop fusion

[Bug tree-optimization/91240] [8/9/10 Regression] Wrong code with -O3 due to unroll and jam pass

2019-08-05 Thread matz at gcc dot gnu.org
at gcc dot gnu.org |matz at gcc dot gnu.org --- Comment #2 from Michael Matz --- Mine.

[Bug middle-end/90796] [8/9/10 Regression] GCC: O2 vs O3 output differs on simple test

2019-06-12 Thread matz at gcc dot gnu.org
at gcc dot gnu.org |matz at gcc dot gnu.org --- Comment #6 from Michael Matz --- I think I know what's going on. Mine.

[Bug middle-end/90796] [8/9/10 Regression] GCC: O2 vs O3 output differs on simple test

2019-06-11 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90796 --- Comment #5 from Michael Matz --- FWIW, the reduced testcase from comment #3 is wrong. Even with -O0 or with gcc 4.3 or 6 I get: b:48 Aborted (core dumped) But I can reproduce the problem with the original testcase.

[Bug middle-end/90348] [7/8/9/10 Regression] Partition of char arrays is incorrect in some cases

2019-05-07 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90348 --- Comment #12 from Michael Matz --- (In reply to Jakub Jelinek from comment #11) > before that region. If we can say for: > for (...) > { > unsigned char v[10]; > unsigned char *p = foo (v); > *p = 1; > unsigned

[Bug middle-end/90348] [7/8/9/10 Regression] Partition of char arrays is incorrect in some cases

2019-05-06 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90348 --- Comment #7 from Michael Matz --- No, this is not a problem in the stack slot sharing algorithm, but rather in the input. As presented to expand, and only showing the important parts, and reordering some BBs to make the flow more obvious:

[Bug target/87561] [9 Regression] 416.gamess is slower by ~10% starting from r264866 with -Ofast

2019-03-12 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87561 --- Comment #9 from Michael Matz --- (In reply to Richard Biener from comment #8) > > I'm out of ideas suitable for GCC 9 (besides reverting the patch, reverting > to bogus state). Either that or some hack (e.g. artificially avoiding

[Bug target/89545] ABI clarification for over-aligned type stack passing

2019-03-01 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89545 --- Comment #12 from Michael Matz --- (In reply to H.J. Lu from comment #11) > (In reply to Michael Matz from comment #10) > > Ah, I missed that. Yeah, I'd like to be co-owner. > > Please send me your gitlab account name. Err, right, that

[Bug target/89545] ABI clarification for over-aligned type stack passing

2019-03-01 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89545 --- Comment #10 from Michael Matz --- Ah, I missed that. Yeah, I'd like to be co-owner.

[Bug target/89545] ABI clarification for over-aligned type stack passing

2019-03-01 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89545 --- Comment #7 from Michael Matz --- What about this variant of the second part? diff --git a/x86-64-ABI/low-level-sys-info.tex b/x86-64-ABI/low-level-sys-info.tex index 66270b9..93b5e95 100644 --- a/x86-64-ABI/low-level-sys-info.tex +++

[Bug target/89545] ABI clarification for over-aligned type stack passing

2019-03-01 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89545 --- Comment #2 from Michael Matz --- I think we should say something about the addresses of stack slots individual overaligned arguments as well (i.e. that the slot itself will also be aligned accordingly), not just for the overall effect.

[Bug tree-optimization/88767] 'unroll and jam' not optimizing some loops

2019-01-09 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88767 --- Comment #3 from Michael Matz --- I don't see anything to improve either (as far as unroll-and-jam is concerned). It's quite possible that cunrolli is harming more than helping in this case, but with it disabled it seems the code is as it

[Bug middle-end/86575] [7/8 Regression] -Wimplicit-fallthrough affects code generation

2018-11-20 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86575 --- Comment #7 from Michael Matz --- As I stated, it's only fixed in trunk, so it's still a regression in 7 and 8, as marked in the summary.

[Bug tree-optimization/31130] [7/8 Regression] VRP no longer derives range for division after negation

2018-11-19 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=31130 Michael Matz changed: What|Removed |Added CC||matz at gcc dot gnu.org

[Bug middle-end/86575] [7/8 Regression] -Wimplicit-fallthrough affects code generation

2018-11-14 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86575 Michael Matz changed: What|Removed |Added Summary|[7/8/9 Regression] |[7/8 Regression]

[Bug middle-end/86575] [7/8/9 Regression] -Wimplicit-fallthrough affects code generation

2018-11-14 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86575 --- Comment #4 from Michael Matz --- Author: matz Date: Wed Nov 14 15:43:54 2018 New Revision: 266148 URL: https://gcc.gnu.org/viewcvs?rev=266148=gcc=rev Log: Fix PR middle-end/86575 PR middle-end/86575 * gimplify.c

[Bug demangler/87675] Stack Overflow in function next_is_type_qual() in cp-demangle.c, as demonstrated by "nm -C"

2018-10-29 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87675 Michael Matz changed: What|Removed |Added CC||matz at gcc dot gnu.org --- Comment #1

[Bug tree-optimization/87074] [8/9 Regression] Unroll and jam bug: O3 result differ from O2

2018-09-01 Thread matz at gcc dot gnu.org
|RESOLVED Resolution|--- |FIXED Assignee|unassigned at gcc dot gnu.org |matz at gcc dot gnu.org --- Comment #7 from Michael Matz --- Fixed in trunk and gcc-8-branch

[Bug tree-optimization/87074] [8/9 Regression] Unroll and jam bug: O3 result differ from O2

2018-09-01 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87074 --- Comment #6 from Michael Matz --- Author: matz Date: Sat Sep 1 17:33:45 2018 New Revision: 264030 URL: https://gcc.gnu.org/viewcvs?rev=264030=gcc=rev Log: Fix PR87074 Backport from mainline PR tree-optimization/87074

[Bug tree-optimization/87074] [8/9 Regression] Unroll and jam bug: O3 result differ from O2

2018-09-01 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87074 --- Comment #5 from Michael Matz --- Author: matz Date: Sat Sep 1 17:22:05 2018 New Revision: 264029 URL: https://gcc.gnu.org/viewcvs?rev=264029=gcc=rev Log: Fix PR87074 PR tree-optimization/87074 * gimple-loop-jam.c

[Bug target/86973] [6/7/8/9 Regression] ICE in expand_call, at calls.c:4217

2018-08-24 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86973 --- Comment #4 from Michael Matz --- FWIW, the testcase is broken since it can be compiled, namely since the two attributes ms_abi and sysv_abi are accepted, which is r137525 from 2008. Only broken with -mno-accumulate-outgoing-args of course.

[Bug target/86973] [6/7/8/9 Regression] ICE in expand_call, at calls.c:4217

2018-08-22 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86973 --- Comment #3 from Michael Matz --- A testcase that doesn't need -mabi cmdline args: extern __attribute__((ms_abi)) void foo(void); __attribute__((sysv_abi)) void a(__attribute__((__vector_size__(8 * sizeof(double double b){ foo(); }

[Bug target/86973] [6/7/8/9 Regression] ICE in expand_call, at calls.c:4217

2018-08-22 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86973 --- Comment #1 from Michael Matz --- I can reproduce the same error without any va-args: % cat bug.i extern void foo(void *); __attribute__((sysv_abi)) void a(__attribute__((__vector_size__(8 * sizeof(double double b){ foo(0); } % ./cc1

[Bug demangler/85304] Segmentation fault

2018-04-16 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85304 Michael Matz changed: What|Removed |Added CC||matz at gcc dot gnu.org --- Comment #1

[Bug target/84829] -mieee-fp causes to link with -lieee but that is no longer available

2018-03-12 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84829 --- Comment #9 from Michael Matz --- (In reply to Carlos O'Donell from comment #8) > > It matters from the users' point of view. I think it's better to give them > > a build error when they use unsupported functionality, rather than giving > >

[Bug target/84829] -mieee-fp causes to link with -lieee but that is no longer available

2018-03-12 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84829 --- Comment #3 from Michael Matz --- (In reply to Jakub Jelinek from comment #2) > I'd say the right thing is to keep libieee.a around, even if it will be an > empty ar archive. Agreed.

[Bug target/84829] -mieee-fp causes to link with -lieee but that is no longer available

2018-03-12 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84829 Michael Matz changed: What|Removed |Added CC||matz at gcc dot gnu.org --- Comment #1

[Bug tree-optimization/37239] peeling last iteration of a <= loop

2018-02-16 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=37239 --- Comment #8 from Michael Matz --- (In reply to Richard Biener from comment #7) > While hmmer is now split the testcase in this bug isn't. We do find some > split points but appearantly never split the loop. This is not a case for normal

[Bug tree-optimization/84111] [8 Regression] Compile time hog w/ -O2

2018-01-30 Thread matz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84111 Michael Matz changed: What|Removed |Added Status|NEW |RESOLVED Resolution|---

  1   2   3   4   >