Bug 119160 - wrong code with -O2 -finstrument-functions-once -favoid-store-forwarding -fnon-call-exceptions -fschedule-insns -mgeneral-regs-only
Summary: wrong code with -O2 -finstrument-functions-once -favoid-store-forwarding -fno...
Status: ASSIGNED
Alias: None
Product: gcc
Classification: Unclassified
Component: rtl-optimization (show other bugs)
Version: 15.0
: P3 normal
Target Milestone: ---
Assignee: Konstantinos Eleftheriou
URL:
Keywords: wrong-code
Depends on:
Blocks:
 
Reported: 2025-03-07 15:15 UTC by Zdenek Sojka
Modified: 2025-03-11 15:22 UTC (History)
3 users (show)

See Also:
Host: x86_64-pc-linux-gnu
Target: x86_64-pc-linux-gnu
Build:
Known to work:
Known to fail: 15.0
Last reconfirmed: 2025-03-11 00:00:00


Attachments
reduced testcase (222 bytes, text/plain)
2025-03-07 15:15 UTC, Zdenek Sojka
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Zdenek Sojka 2025-03-07 15:15:21 UTC
Created attachment 60679 [details]
reduced testcase

Output:
$ x86_64-pc-linux-gnu-gcc -O2 -finstrument-functions-once -favoid-store-forwarding -fnon-call-exceptions -fschedule-insns -mgeneral-regs-only testcase.c -Wno-psabi
$ ./a.out 
Aborted

$ x86_64-pc-linux-gnu-gcc -v
Using built-in specs.
COLLECT_GCC=/repo/gcc-trunk/binary-latest-amd64/bin/x86_64-pc-linux-gnu-gcc
COLLECT_LTO_WRAPPER=/repo/gcc-trunk/binary-trunk-20250307135039-r15-7886-g2427793af1e545-checking-yes-rtl-df-extra-nobootstrap-amd64/bin/../libexec/gcc/x86_64-pc-linux-gnu/15.0.1/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /repo/gcc-trunk//configure --enable-languages=c,c++ --enable-valgrind-annotations --disable-nls --enable-checking=yes,rtl,df,extra --disable-bootstrap --with-cloog --with-ppl --with-isl --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --target=x86_64-pc-linux-gnu --with-ld=/usr/bin/x86_64-pc-linux-gnu-ld --with-as=/usr/bin/x86_64-pc-linux-gnu-as --enable-libsanitizer --disable-libstdcxx-pch --prefix=/repo/gcc-trunk//binary-trunk-20250307135039-r15-7886-g2427793af1e545-checking-yes-rtl-df-extra-nobootstrap-amd64
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 15.0.1 20250307 (experimental) (GCC)
Comment 1 Jakub Jelinek 2025-03-07 15:24:43 UTC
Miscompilation started with r15-6464-gc86e1c54c6f8771d08a8c070717b80607f990f8a
Not sure if we can consider it a regression though, as the -favoid-store-forwarding
option has only been added in r15-5640-g1d8de1e93ea00f7797f61cf8e05c47ca86f21f8c
Comment 2 Jakub Jelinek 2025-03-07 15:25:56 UTC
I think this has nothing to do with selective scheduling.
Comment 3 Sam James 2025-03-07 15:29:43 UTC
(That's why I removed the blocker.)
Comment 4 Sam James 2025-03-07 15:30:10 UTC
(In reply to Jakub Jelinek from comment #1)

It'll arguably be a 16 regression as the plan is to enable it by default for some targets.