> Am 17.11.2024 um 09:54 schrieb Andrew Pinski <pins...@gmail.com>:
>
> On Sat, Nov 16, 2024 at 9:27 AM haochen.jiang <haoch...@smtp.intel.com>
> wrote:
>>
>> On Linux/x86_64,
>>
>> cee7d080d5c2a5fb8125878998b742c040ec88b4 is the first bad commit
>> commit cee7d080d5c2a5fb8125878998b742c040ec88b4
>> Author: Jan Hubicka <hubi...@ucw.cz>
>> Date: Sat Nov 16 14:04:32 2024 +0100
>>
>> Ignore conditions guarding __builtin_unreachable in inliner metrics
>>
>> caused
>>
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -DPREVENT_OPTIMIZATION line 16 arg1
>> == 1
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -DPREVENT_OPTIMIZATION line 16 arg2
>> == 2
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -DPREVENT_OPTIMIZATION line 16 arg3
>> == 3
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -DPREVENT_OPTIMIZATION line 16 arg4
>> == 4
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -DPREVENT_OPTIMIZATION line 16 arg5
>> == 5
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -DPREVENT_OPTIMIZATION line 16 arg6
>> == 6
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -DPREVENT_OPTIMIZATION line 16 arg7
>> == 30
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -DPREVENT_OPTIMIZATION line 18 arg1
>> == 1
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -DPREVENT_OPTIMIZATION line 18 arg2
>> == 2
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -DPREVENT_OPTIMIZATION line 18 arg3
>> == 3
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -DPREVENT_OPTIMIZATION line 18 arg4
>> == 4
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -DPREVENT_OPTIMIZATION line 18 arg5
>> == 5
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -DPREVENT_OPTIMIZATION line 18 arg6
>> == 6
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -DPREVENT_OPTIMIZATION line 18 arg7
>> == 30
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fno-use-linker-plugin
>> -flto-partition=none -DPREVENT_OPTIMIZATION line 16 arg1 == 1
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fno-use-linker-plugin
>> -flto-partition=none -DPREVENT_OPTIMIZATION line 16 arg2 == 2
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fno-use-linker-plugin
>> -flto-partition=none -DPREVENT_OPTIMIZATION line 16 arg3 == 3
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fno-use-linker-plugin
>> -flto-partition=none -DPREVENT_OPTIMIZATION line 16 arg4 == 4
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fno-use-linker-plugin
>> -flto-partition=none -DPREVENT_OPTIMIZATION line 16 arg5 == 5
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fno-use-linker-plugin
>> -flto-partition=none -DPREVENT_OPTIMIZATION line 16 arg6 == 6
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fno-use-linker-plugin
>> -flto-partition=none -DPREVENT_OPTIMIZATION line 16 arg7 == 30
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fno-use-linker-plugin
>> -flto-partition=none -DPREVENT_OPTIMIZATION line 18 arg1 == 1
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fno-use-linker-plugin
>> -flto-partition=none -DPREVENT_OPTIMIZATION line 18 arg2 == 2
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fno-use-linker-plugin
>> -flto-partition=none -DPREVENT_OPTIMIZATION line 18 arg3 == 3
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fno-use-linker-plugin
>> -flto-partition=none -DPREVENT_OPTIMIZATION line 18 arg4 == 4
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fno-use-linker-plugin
>> -flto-partition=none -DPREVENT_OPTIMIZATION line 18 arg5 == 5
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fno-use-linker-plugin
>> -flto-partition=none -DPREVENT_OPTIMIZATION line 18 arg6 == 6
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fno-use-linker-plugin
>> -flto-partition=none -DPREVENT_OPTIMIZATION line 18 arg7 == 30
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fuse-linker-plugin
>> -fno-fat-lto-objects -DPREVENT_OPTIMIZATION line 16 arg1 == 1
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fuse-linker-plugin
>> -fno-fat-lto-objects -DPREVENT_OPTIMIZATION line 16 arg2 == 2
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fuse-linker-plugin
>> -fno-fat-lto-objects -DPREVENT_OPTIMIZATION line 16 arg3 == 3
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fuse-linker-plugin
>> -fno-fat-lto-objects -DPREVENT_OPTIMIZATION line 16 arg4 == 4
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fuse-linker-plugin
>> -fno-fat-lto-objects -DPREVENT_OPTIMIZATION line 16 arg5 == 5
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fuse-linker-plugin
>> -fno-fat-lto-objects -DPREVENT_OPTIMIZATION line 16 arg6 == 6
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fuse-linker-plugin
>> -fno-fat-lto-objects -DPREVENT_OPTIMIZATION line 16 arg7 == 30
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fuse-linker-plugin
>> -fno-fat-lto-objects -DPREVENT_OPTIMIZATION line 18 arg1 == 1
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fuse-linker-plugin
>> -fno-fat-lto-objects -DPREVENT_OPTIMIZATION line 18 arg2 == 2
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fuse-linker-plugin
>> -fno-fat-lto-objects -DPREVENT_OPTIMIZATION line 18 arg3 == 3
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fuse-linker-plugin
>> -fno-fat-lto-objects -DPREVENT_OPTIMIZATION line 18 arg4 == 4
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fuse-linker-plugin
>> -fno-fat-lto-objects -DPREVENT_OPTIMIZATION line 18 arg5 == 5
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fuse-linker-plugin
>> -fno-fat-lto-objects -DPREVENT_OPTIMIZATION line 18 arg6 == 6
>> FAIL: gcc.dg/guality/pr36728-2.c -O2 -flto -fuse-linker-plugin
>> -fno-fat-lto-objects -DPREVENT_OPTIMIZATION line 18 arg7 == 30
>> FAIL: gcc.dg/guality/pr36728-2.c -O3 -g -DPREVENT_OPTIMIZATION line 16
>> arg1 == 1
>> FAIL: gcc.dg/guality/pr36728-2.c -O3 -g -DPREVENT_OPTIMIZATION line 16
>> arg2 == 2
>> FAIL: gcc.dg/guality/pr36728-2.c -O3 -g -DPREVENT_OPTIMIZATION line 16
>> arg3 == 3
>> FAIL: gcc.dg/guality/pr36728-2.c -O3 -g -DPREVENT_OPTIMIZATION line 16
>> arg4 == 4
>> FAIL: gcc.dg/guality/pr36728-2.c -O3 -g -DPREVENT_OPTIMIZATION line 16
>> arg5 == 5
>> FAIL: gcc.dg/guality/pr36728-2.c -O3 -g -DPREVENT_OPTIMIZATION line 16
>> arg6 == 6
>> FAIL: gcc.dg/guality/pr36728-2.c -O3 -g -DPREVENT_OPTIMIZATION line 16
>> arg7 == 30
>> FAIL: gcc.dg/guality/pr36728-2.c -O3 -g -DPREVENT_OPTIMIZATION line 18
>> arg1 == 1
>> FAIL: gcc.dg/guality/pr36728-2.c -O3 -g -DPREVENT_OPTIMIZATION line 18
>> arg2 == 2
>> FAIL: gcc.dg/guality/pr36728-2.c -O3 -g -DPREVENT_OPTIMIZATION line 18
>> arg3 == 3
>> FAIL: gcc.dg/guality/pr36728-2.c -O3 -g -DPREVENT_OPTIMIZATION line 18
>> arg4 == 4
>> FAIL: gcc.dg/guality/pr36728-2.c -O3 -g -DPREVENT_OPTIMIZATION line 18
>> arg5 == 5
>> FAIL: gcc.dg/guality/pr36728-2.c -O3 -g -DPREVENT_OPTIMIZATION line 18
>> arg6 == 6
>> FAIL: gcc.dg/guality/pr36728-2.c -O3 -g -DPREVENT_OPTIMIZATION line 18
>> arg7 == 30
>> FAIL: gcc.dg/guality/pr36728-4.c -O2 -DPREVENT_OPTIMIZATION line 14 y ==
>> 2
>> FAIL: gcc.dg/guality/pr36728-4.c -O2 -DPREVENT_OPTIMIZATION line 16 y ==
>> 2
>> FAIL: gcc.dg/guality/pr36728-4.c -O2 -flto -fno-use-linker-plugin
>> -flto-partition=none -DPREVENT_OPTIMIZATION line 16 y == 2
>> FAIL: gcc.dg/guality/pr36728-4.c -O2 -flto -fuse-linker-plugin
>> -fno-fat-lto-objects -DPREVENT_OPTIMIZATION line 14 y == 2
>> FAIL: gcc.dg/guality/pr36728-4.c -O2 -flto -fuse-linker-plugin
>> -fno-fat-lto-objects -DPREVENT_OPTIMIZATION line 16 y == 2
>> FAIL: gcc.dg/guality/pr36728-4.c -O3 -g -DPREVENT_OPTIMIZATION line 14 y
>> == 2
>> FAIL: gcc.dg/guality/pr36728-4.c -O3 -g -DPREVENT_OPTIMIZATION line 16 y
>> == 2
>> FAIL: gcc.dg/guality/pr36728-4.c -Os -DPREVENT_OPTIMIZATION line 14 y ==
>> 2
>> FAIL: gcc.dg/guality/pr36728-4.c -Os -DPREVENT_OPTIMIZATION line 16 y ==
>> 2
>
> All of these are due to now the function is being cloned and the
> arguments are being removed as unused (they are testing the arguments
> are still there for debugging).
> So I suspect the functions should be marked as noclone in addition to
> what they are currently marked as noinline.
>
> What do others think?
Cloning should have preserved the debug info for the removed parameters. At
least ISTR this used to work. If not, we should make it work ;)
Richard
> Thanks,
> Andrew
>
>>
>> with GCC configured with
>>
>> ../../gcc/configure
>> --prefix=/export/users/haochenj/src/gcc-bisect/master/master/r15-5336/usr
>> --enable-clocale=gnu --with-system-zlib --with-demangler-in-ld
>> --with-fpmath=sse --enable-languages=c,c++,fortran --enable-cet
>> --without-isl --enable-libmpx x86_64-linux --disable-bootstrap
>>
>> To reproduce:
>>
>> $ cd {build_dir}/gcc && make check
>> RUNTESTFLAGS="guality.exp=gcc.dg/guality/pr36728-2.c
>> --target_board='unix{-m64}'"
>> $ cd {build_dir}/gcc && make check
>> RUNTESTFLAGS="guality.exp=gcc.dg/guality/pr36728-2.c
>> --target_board='unix{-m64\ -march=cascadelake}'"
>> $ cd {build_dir}/gcc && make check
>> RUNTESTFLAGS="guality.exp=gcc.dg/guality/pr36728-4.c
>> --target_board='unix{-m32}'"
>> $ cd {build_dir}/gcc && make check
>> RUNTESTFLAGS="guality.exp=gcc.dg/guality/pr36728-4.c
>> --target_board='unix{-m32\ -march=cascadelake}'"
>> $ cd {build_dir}/gcc && make check
>> RUNTESTFLAGS="guality.exp=gcc.dg/guality/pr36728-4.c
>> --target_board='unix{-m64}'"
>> $ cd {build_dir}/gcc && make check
>> RUNTESTFLAGS="guality.exp=gcc.dg/guality/pr36728-4.c
>> --target_board='unix{-m64\ -march=cascadelake}'"
>>
>> (Please do not reply to this email, for question about this report, contact
>> me at haochen dot jiang at intel.com.)
>> (If you met problems with cascadelake related, disabling AVX512F in command
>> line might save that.)
>> (However, please make sure that there is no potential problems with AVX512.)