public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/94485] New: [10.0.1, c++2a] g++ optimizes away the code, accepts arbitrary inline asm
@ 2020-04-04 15:33 dimitri.gorokhovik at free dot fr
2020-04-04 15:39 ` [Bug c++/94485] [10.0.1, c++2a] g++ optimizes away necessary " pinskia at gcc dot gnu.org
` (11 more replies)
0 siblings, 12 replies; 13+ messages in thread
From: dimitri.gorokhovik at free dot fr @ 2020-04-04 15:33 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94485
Bug ID: 94485
Summary: [10.0.1, c++2a] g++ optimizes away the code, accepts
arbitrary inline asm
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: dimitri.gorokhovik at free dot fr
Target Milestone: ---
Created attachment 48194
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48194&action=edit
Sample code illustrating the sighting.
Version: gcc (GCC) 10.0.1 20200404 (experimental)
command line:
~/gcc-trunk/dist/bin/g++ -std=c++2a -O3 -Wall -Wextra -W bug-202004041709.cpp
-o bug-1 && ./bug-1
The attached file (apologies, still big) contains the following code (line
425):
constexpr iterator (tesselation const& me)
: cube_ { me.cube_ },
inner_ { me.as_parent ().begin () },
tess_ {},
outer_ { tess_ }
{
if (inner_)
{
tess_ = tesselation_of_two_cubes { cube_, *inner_ };
asm("before:");
#if 0 // breaks only with -O3
auto const tmp { tess_.begin () };
asm("middle:");
outer_ = tmp;
^^^^^^^^^^^^
#else // breaks with -O3, -O1, fixes with -fsanitize=undefined|null
outer_ = { tess_.begin () };
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
asm("after:");
#endif
inner_.next ();
if (! outer_) throw 749;
};
};
(Minor remark: 'asm' statements in this constexpr method raise no brows. I
tried putting there insns that require evaluation, seems anything is silently
accepted. The same asm statements are rejected in a more simple constexpr
code.)
It seems, some optimization levels completely remove the highlighted assignment
so that 'throw 749' is executed (main() prints it then). Other passes keep the
copying code and produce expected result. This over-optimization can be fixed
by enabling certain sanitizers: undefined, null, vptr.
The asm code produced:
-- broken (compiled with -O3 or -O1):
#APP
# 425 "bug-1.cpp" 1
before:
# 0 "" 2
#NO_APP
movq %r12, 216(%rsp)
#APP
# 433 "bug-1.cpp" 1
after:
# 0 "" 2
#NO_APP
-- working (compiled with -O0 or -O1 or with -fsanitizer=null):
#APP
# 425 "bug-1.cpp" 1
before:
# 0 "" 2
#NO_APP
xorl %eax, %eax
cmpb $0, 43(%rbx)
movq %r14, 64(%rsp)
movw %ax, 72(%rsp)
movb $0, 74(%rsp)
je .L73
cmpb $0, 63(%rbx)
je .L73
cmpb $0, 83(%rbx)
sete %al
.L68:
movb %al, 75(%rsp)
movq 64(%rsp), %rax
movdqa 64(%rsp), %xmm6
movq %rax, 88(%rbx)
movl 72(%rsp), %eax
movaps %xmm6, 96(%rsp)
movl %eax, 96(%rbx)
#APP
# 433 "bug-1.cpp" 1
after:
# 0 "" 2
#NO_APP
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug c++/94485] [10.0.1, c++2a] g++ optimizes away necessary code, accepts arbitrary inline asm
2020-04-04 15:33 [Bug c++/94485] New: [10.0.1, c++2a] g++ optimizes away the code, accepts arbitrary inline asm dimitri.gorokhovik at free dot fr
@ 2020-04-04 15:39 ` pinskia at gcc dot gnu.org
2020-04-04 15:40 ` pinskia at gcc dot gnu.org
` (10 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: pinskia at gcc dot gnu.org @ 2020-04-04 15:39 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94485
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Without looking fully into this, it seems to me a variable is being used after
it goes out of scope.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug c++/94485] [10.0.1, c++2a] g++ optimizes away necessary code, accepts arbitrary inline asm
2020-04-04 15:33 [Bug c++/94485] New: [10.0.1, c++2a] g++ optimizes away the code, accepts arbitrary inline asm dimitri.gorokhovik at free dot fr
2020-04-04 15:39 ` [Bug c++/94485] [10.0.1, c++2a] g++ optimizes away necessary " pinskia at gcc dot gnu.org
@ 2020-04-04 15:40 ` pinskia at gcc dot gnu.org
2020-04-04 15:45 ` dimitri.gorokhovik at free dot fr
` (9 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: pinskia at gcc dot gnu.org @ 2020-04-04 15:40 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94485
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Also c++20 changes constexpr is handled which is why inline asm is accepted now
IIRC.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug c++/94485] [10.0.1, c++2a] g++ optimizes away necessary code, accepts arbitrary inline asm
2020-04-04 15:33 [Bug c++/94485] New: [10.0.1, c++2a] g++ optimizes away the code, accepts arbitrary inline asm dimitri.gorokhovik at free dot fr
2020-04-04 15:39 ` [Bug c++/94485] [10.0.1, c++2a] g++ optimizes away necessary " pinskia at gcc dot gnu.org
2020-04-04 15:40 ` pinskia at gcc dot gnu.org
@ 2020-04-04 15:45 ` dimitri.gorokhovik at free dot fr
2020-04-04 15:49 ` dimitri.gorokhovik at free dot fr
` (8 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: dimitri.gorokhovik at free dot fr @ 2020-04-04 15:45 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94485
--- Comment #3 from Dimitri Gorokhovik <dimitri.gorokhovik at free dot fr> ---
(In reply to Andrew Pinski from comment #2)
> Also c++20 changes constexpr is handled which is why inline asm is accepted
> now IIRC.
This code:
constexpr auto f()
{
asm("before:");
constexpr auto r = 129;
asm("after:");
return r;
};
produces:
bug-2.cpp: In function ‘constexpr auto f()’:
bug-2.cpp:3:3: error: inline assembly is not a constant expression
3 | asm("before:");
| ^~~
bug-2.cpp:3:3: note: only unevaluated inline assembly is allowed in a
‘constexpr’ function in C++2a
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug c++/94485] [10.0.1, c++2a] g++ optimizes away necessary code, accepts arbitrary inline asm
2020-04-04 15:33 [Bug c++/94485] New: [10.0.1, c++2a] g++ optimizes away the code, accepts arbitrary inline asm dimitri.gorokhovik at free dot fr
` (2 preceding siblings ...)
2020-04-04 15:45 ` dimitri.gorokhovik at free dot fr
@ 2020-04-04 15:49 ` dimitri.gorokhovik at free dot fr
2020-04-19 9:38 ` dimitri.gorokhovik at free dot fr
` (7 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: dimitri.gorokhovik at free dot fr @ 2020-04-04 15:49 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94485
--- Comment #4 from Dimitri Gorokhovik <dimitri.gorokhovik at free dot fr> ---
To be clear, the braces here:
outer_ = { tess_.begin () };
are the leftover of the simplification. Plain assignment also gets removed,
only it is slightly harder to reproduce (-O3 only).
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug c++/94485] [10.0.1, c++2a] g++ optimizes away necessary code, accepts arbitrary inline asm
2020-04-04 15:33 [Bug c++/94485] New: [10.0.1, c++2a] g++ optimizes away the code, accepts arbitrary inline asm dimitri.gorokhovik at free dot fr
` (3 preceding siblings ...)
2020-04-04 15:49 ` dimitri.gorokhovik at free dot fr
@ 2020-04-19 9:38 ` dimitri.gorokhovik at free dot fr
2020-06-01 13:03 ` dimitri.gorokhovik at free dot fr
` (6 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: dimitri.gorokhovik at free dot fr @ 2020-04-19 9:38 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94485
--- Comment #5 from Dimitri Gorokhovik <dimitri.gorokhovik at free dot fr> ---
Build "g++ (GCC) 10.0.1 20200418 (experimental)" does not reproduce the issue
on the attached sample code anymore.
However:
-- adding an asm statement into the sample code gets the issue back. Tried asm
("nop") and asm ("") on line 426, other insns seem to be vetted and rejected.
-- issue is still reproduced on the original code where it is not related to
the asm, but rather to use of a pointer as opposed to a copy.
-- vetting of asm content doesn't seem to be performed in the original code.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug c++/94485] [10.0.1, c++2a] g++ optimizes away necessary code, accepts arbitrary inline asm
2020-04-04 15:33 [Bug c++/94485] New: [10.0.1, c++2a] g++ optimizes away the code, accepts arbitrary inline asm dimitri.gorokhovik at free dot fr
` (4 preceding siblings ...)
2020-04-19 9:38 ` dimitri.gorokhovik at free dot fr
@ 2020-06-01 13:03 ` dimitri.gorokhovik at free dot fr
2020-09-24 19:45 ` dimitri.gorokhovik at free dot fr
` (5 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: dimitri.gorokhovik at free dot fr @ 2020-06-01 13:03 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94485
--- Comment #6 from Dimitri Gorokhovik <dimitri.gorokhovik at free dot fr> ---
I bisected this issue to the commit:
commit 35a952ba70028b50fbd2fd19f7dc91f2da45371e
Author: Martin Jambor <mjambor@suse.cz>
Date: Tue Jun 13 13:34:51 2017 +0200
[PR80803 1/2] Streamline SRA access enqueuing
2017-06-13 Martin Jambor <mjambor@suse.cz>
* tree-sra.c (add_access_to_work_queue): Only enqueue accesses
that have a first_link.
(sort_and_splice_var_accesses): Do not check first_link before
enquing.
(subtree_mark_written_and_enqueue): Likewise.
(propagate_all_subaccesses): Likewise and do not stop at first
parent with a first_link.
From-SVN: r249153
on the branch gcc-8 and on. (gcc-7.5.0 and clang-11 don't have the issue.
Adding 2/2 of the change doesn't help.)
So I have the following fragment of code:
template <unsigned N>
struct index : public std::array <unsigned char, N>
{
constexpr index () : std::array <unsigned char, N> {0} {};
constexpr bool can_be_incremented (tesselation_of_two_cubes const&);
};
...
struct iterator
{
tesselation_of_two_cubes const* me_;
index <number_of_dimensions> idx_;
bool reached_end_;
constexpr iterator (tesselation_of_two_cubes const& ts) noexcept
: me_ { &ts },
idx_ {},
>>>>>>>> reached_end_ { ! idx_.can_be_incremented (ts) } <<<<<<<<<<
eliminated
{};
...
If compiling as shown, SRA and subsequent passes make the line above go away
(replace by 'true' which shouldn't be). This is because the ctor for idx_ is
also eliminated, so idx_.can_be_incremented() probably considered reading from
uninitialised data by SRA.
If I change the layout of 'struct iterator', move the member 'idx_' above
'me_', or below 'reached_end_', the issue goes away.
Still struggling with producing small good code sample.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug c++/94485] [10.0.1, c++2a] g++ optimizes away necessary code, accepts arbitrary inline asm
2020-04-04 15:33 [Bug c++/94485] New: [10.0.1, c++2a] g++ optimizes away the code, accepts arbitrary inline asm dimitri.gorokhovik at free dot fr
` (5 preceding siblings ...)
2020-06-01 13:03 ` dimitri.gorokhovik at free dot fr
@ 2020-09-24 19:45 ` dimitri.gorokhovik at free dot fr
2020-09-24 20:25 ` [Bug c++/94485] Inter-dependency between { tree-sra, ABI, inlining, loop-unrolling } leads to mis-optimization dimitri.gorokhovik at free dot fr
` (4 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: dimitri.gorokhovik at free dot fr @ 2020-09-24 19:45 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94485
Dimitri Gorokhovik <dimitri.gorokhovik at free dot fr> changed:
What |Removed |Added
----------------------------------------------------------------------------
Attachment #48194|0 |1
is obsolete| |
--- Comment #7 from Dimitri Gorokhovik <dimitri.gorokhovik at free dot fr> ---
Created attachment 49268
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=49268&action=edit
Testcase demonstrating the issue.
A more reduced testcase demonstrating the issue.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug c++/94485] Inter-dependency between { tree-sra, ABI, inlining, loop-unrolling } leads to mis-optimization
2020-04-04 15:33 [Bug c++/94485] New: [10.0.1, c++2a] g++ optimizes away the code, accepts arbitrary inline asm dimitri.gorokhovik at free dot fr
` (6 preceding siblings ...)
2020-09-24 19:45 ` dimitri.gorokhovik at free dot fr
@ 2020-09-24 20:25 ` dimitri.gorokhovik at free dot fr
2024-03-27 4:33 ` [Bug ipa/94485] " sjames at gcc dot gnu.org
` (3 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: dimitri.gorokhovik at free dot fr @ 2020-09-24 20:25 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94485
--- Comment #8 from Dimitri Gorokhovik <dimitri.gorokhovik at free dot fr> ---
I was able to reduce same code (see the attached file bug-6.cpp).
-- when compiled correctly, running it produces the following (expected)
output:
cube: ({ 0, 0, 0 }, { 1, 1, 1 })
cube: ({ 0, 0, 1 }, { 1, 1, 2 })
cube: ({ 0, 0, 2 }, { 1, 1, 3 })
cube: ({ 0, 1, 0 }, { 1, 2, 1 })
cube: ({ 0, 1, 1 }, { 1, 2, 2 })
cube: ({ 0, 1, 2 }, { 1, 2, 3 })
cube: ({ 0, 2, 0 }, { 1, 3, 1 })
cube: ({ 0, 2, 1 }, { 1, 3, 2 })
cube: ({ 0, 2, 2 }, { 1, 3, 3 })
cube: ({ 1, 0, 0 }, { 2, 1, 1 })
cube: ({ 1, 0, 1 }, { 2, 1, 2 })
cube: ({ 1, 0, 2 }, { 2, 1, 3 })
cube: ({ 1, 1, 0 }, { 2, 2, 1 })
cube: ({ 1, 1, 1 }, { 2, 2, 2 })
cube: ({ 1, 1, 2 }, { 2, 2, 3 })
cube: ({ 1, 2, 0 }, { 2, 3, 1 })
cube: ({ 1, 2, 1 }, { 2, 3, 2 })
cube: ({ 1, 2, 2 }, { 2, 3, 3 })
cube: ({ 2, 0, 0 }, { 3, 1, 1 })
cube: ({ 2, 0, 1 }, { 3, 1, 2 })
cube: ({ 2, 0, 2 }, { 3, 1, 3 })
cube: ({ 2, 1, 0 }, { 3, 2, 1 })
cube: ({ 2, 1, 1 }, { 3, 2, 2 })
cube: ({ 2, 1, 2 }, { 3, 2, 3 })
cube: ({ 2, 2, 0 }, { 3, 3, 1 })
cube: ({ 2, 2, 1 }, { 3, 3, 2 })
cube: ({ 2, 2, 2 }, { 3, 3, 3 })
count = 27
-- when compiled incorrectly, it prints out:
count = 0
Tested with build g++ (GCC) 11.0.0 20200924 (experimental).
In order to compile and run:
g++ -std=c++17 -O3 -o bug-6 bug-6.cpp && ./bug-6
This builds for implicit '-m64' (x86_64) and produces invalid output.
To get valid output, compile with either of the following:
-m32
-O0 (instead of -O3)
-fno-tree-sra
one of: -DFIX_0, -DFIX_1, -DFIX_2, -DFIX_3, -DFIX_4
>From my limited understanding of tree dumps, here is what roughly happens:
-- the routine 'begin()', line 183, returns 'struct iterator' by value. The
latter has the size of 14 bytes so returned "in registers". Forcing it to be
returned via memory ==> issue goes away. (Methods to force: make bigger than 16
bytes, make some fields volatile, use -m32). Note also that, when the routine
is evaluated as constexpr (in static_assert), the issue is not reproduced.
-- all called routines (pretty much) are inlined inside one call, to
'count_them ()'. Prevent the inlining of the routine 'can_be_incremented ()'
==> issue goes away. (Methods to prevent: define FIX_1.)
-- SRA replaces several fields of the 'struct iterator' (line 150), most
importantly 'idx_' (line 153). Disable SRA ==> issue goes away (-fno-tree-sra
or -O0).
This replacement by tree-SRA somehow doesn't propagate the writes to the
replacement vars of idx_to the original parts of the structure living "in the
return registers". When the return value lives in memory, the writes are
propagated correctly.
The compiler then eliminates the loop in 'can_be_incremented' and evaluates the
call to that routine to 'false' (line 163). Forcibly keeping the loop (-DFIX_2)
or replacing it by non-loop code (-DFIX_0) ==> issue goes away.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug ipa/94485] Inter-dependency between { tree-sra, ABI, inlining, loop-unrolling } leads to mis-optimization
2020-04-04 15:33 [Bug c++/94485] New: [10.0.1, c++2a] g++ optimizes away the code, accepts arbitrary inline asm dimitri.gorokhovik at free dot fr
` (7 preceding siblings ...)
2020-09-24 20:25 ` [Bug c++/94485] Inter-dependency between { tree-sra, ABI, inlining, loop-unrolling } leads to mis-optimization dimitri.gorokhovik at free dot fr
@ 2024-03-27 4:33 ` sjames at gcc dot gnu.org
2024-03-27 4:40 ` sjames at gcc dot gnu.org
` (2 subsequent siblings)
11 siblings, 0 replies; 13+ messages in thread
From: sjames at gcc dot gnu.org @ 2024-03-27 4:33 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94485
Sam James <sjames at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |sjames at gcc dot gnu.org
--- Comment #9 from Sam James <sjames at gcc dot gnu.org> ---
Not sure if I'm doing something wrong or if it just got fixed in the 10 dev
cycle, but https://godbolt.org/z/x48xK9j67 is fine and so were the other
compilers I tried (9+).
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug ipa/94485] Inter-dependency between { tree-sra, ABI, inlining, loop-unrolling } leads to mis-optimization
2020-04-04 15:33 [Bug c++/94485] New: [10.0.1, c++2a] g++ optimizes away the code, accepts arbitrary inline asm dimitri.gorokhovik at free dot fr
` (8 preceding siblings ...)
2024-03-27 4:33 ` [Bug ipa/94485] " sjames at gcc dot gnu.org
@ 2024-03-27 4:40 ` sjames at gcc dot gnu.org
2024-03-27 4:58 ` pinskia at gcc dot gnu.org
2024-03-27 5:00 ` pinskia at gcc dot gnu.org
11 siblings, 0 replies; 13+ messages in thread
From: sjames at gcc dot gnu.org @ 2024-03-27 4:40 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94485
--- Comment #10 from Sam James <sjames at gcc dot gnu.org> ---
ok, on godbolt, 8.5 fails. I think we're fine here then?
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug ipa/94485] Inter-dependency between { tree-sra, ABI, inlining, loop-unrolling } leads to mis-optimization
2020-04-04 15:33 [Bug c++/94485] New: [10.0.1, c++2a] g++ optimizes away the code, accepts arbitrary inline asm dimitri.gorokhovik at free dot fr
` (9 preceding siblings ...)
2024-03-27 4:40 ` sjames at gcc dot gnu.org
@ 2024-03-27 4:58 ` pinskia at gcc dot gnu.org
2024-03-27 5:00 ` pinskia at gcc dot gnu.org
11 siblings, 0 replies; 13+ messages in thread
From: pinskia at gcc dot gnu.org @ 2024-03-27 4:58 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94485
--- Comment #11 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
SRA in 10.2.0:
```
Created a replacement for D.14474 offset: 0, size: 64: SR.70D.14479
Created a replacement for D.14475 offset: 0, size: 64: SR.71D.14480
Removing load: D.13665 = D.14475;
```
in 10.3.0:
```
Created a replacement for D.14507 offset: 0, size: 64: SR.70D.14512
Created a replacement for D.14508 offset: 0, size: 64: SR.71D.14513
```
Notice how there is not a "removing load" in 10.3.0.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [Bug ipa/94485] Inter-dependency between { tree-sra, ABI, inlining, loop-unrolling } leads to mis-optimization
2020-04-04 15:33 [Bug c++/94485] New: [10.0.1, c++2a] g++ optimizes away the code, accepts arbitrary inline asm dimitri.gorokhovik at free dot fr
` (10 preceding siblings ...)
2024-03-27 4:58 ` pinskia at gcc dot gnu.org
@ 2024-03-27 5:00 ` pinskia at gcc dot gnu.org
11 siblings, 0 replies; 13+ messages in thread
From: pinskia at gcc dot gnu.org @ 2024-03-27 5:00 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94485
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution|--- |DUPLICATE
--- Comment #12 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Dup.
*** This bug has been marked as a duplicate of bug 97009 ***
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2024-03-27 5:00 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-04 15:33 [Bug c++/94485] New: [10.0.1, c++2a] g++ optimizes away the code, accepts arbitrary inline asm dimitri.gorokhovik at free dot fr
2020-04-04 15:39 ` [Bug c++/94485] [10.0.1, c++2a] g++ optimizes away necessary " pinskia at gcc dot gnu.org
2020-04-04 15:40 ` pinskia at gcc dot gnu.org
2020-04-04 15:45 ` dimitri.gorokhovik at free dot fr
2020-04-04 15:49 ` dimitri.gorokhovik at free dot fr
2020-04-19 9:38 ` dimitri.gorokhovik at free dot fr
2020-06-01 13:03 ` dimitri.gorokhovik at free dot fr
2020-09-24 19:45 ` dimitri.gorokhovik at free dot fr
2020-09-24 20:25 ` [Bug c++/94485] Inter-dependency between { tree-sra, ABI, inlining, loop-unrolling } leads to mis-optimization dimitri.gorokhovik at free dot fr
2024-03-27 4:33 ` [Bug ipa/94485] " sjames at gcc dot gnu.org
2024-03-27 4:40 ` sjames at gcc dot gnu.org
2024-03-27 4:58 ` pinskia at gcc dot gnu.org
2024-03-27 5:00 ` pinskia at gcc dot gnu.org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).