We have started to build the 8.x branch and part of our build process is to run check-clang, check-llvm and check-lld on Linux, Windows, Macos and FreeBSD. Is there a test report or file we can collect in the CI and share with the community if there is interest?
The test runner doesn't produce any report file. If you want to share
results, what is interesting for us is the output of the check-llvm,
etc. steps in the cases there are test failures.
(...)/clang++ -fPIC -target x86_64-linux-gnu --sysroot=(...) -march=x86-64 -fuse-ld=lld -D_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR -D_LIBCPP_ENABLE_CXX17_REMOVED_BINDERS -stdlib=libc++ -std=gnu++1z -flto=thin
(...)
In file included from (...)/sysroot-x86_64-linux-gnu/usr/include/c++/v1/string:500:
In file included from (...)/sysroot-x86_64-linux-gnu/usr/include/c++/v1/string_view:176:
In file included from (...)/sysroot-x86_64-linux-gnu/usr/include/c++/v1/__string:56:
In file included from (...)/sysroot-x86_64-linux-gnu/usr/include/c++/v1/algorithm:640:
In file included from (...)/sysroot-x86_64-linux-gnu/usr/include/c++/v1/initializer_list:47:
In file included from (...)/sysroot-x86_64-linux-gnu/usr/include/c++/v1/cstddef:110:
(...)/sysroot-x86_64-linux-gnu/usr/include/c++/v1/type_traits:740:56: error: _Float16 is not supported on this target
template <> struct __libcpp_is_floating_point<_Float16> : public true_type {};
^
rc2 build on Ubuntu 16.04 saw a stage 2/3 mismatch on X86IselLowering.cpp.o – I didn’t try to build rc1 for 16.04 but I can try it now to see if it’s there too.
I can pass along logs if anyone wants to investigate.
rc1 did not exhibit this mismatch. A repeat of the rc2 build repeated the mismatch. I diff’d the disassembly between phase 2 and phase 3 and the difference is the same on both builds. The difference follows:
diff x86isel_p{2,3}.s
2c2
< Phase2/Release/llvmCore-8.0.0-rc2.obj/lib/Target/X86/CMakeFiles/LLVMX86CodeGen.dir/X86ISelLowering.cpp.o: file format elf64-x86-64
If each stage consistently produces the same object file, then treat it like any other miscompile: mix the object files created by a good/bad compiler to bisect which C++ file is getting miscompiled, then reduce the failure using opt-bisect-limit or bugpoint. Or maybe you could try asan/ubsan first to rule out something silly.
If it’s non-determinism, you could try to use opt-bisect-limit to figure out which pass is non-deterministic.
Unfortunately I had to disable compiler-rt for this test run, as most of the sanitizers are totally broken. They get into an endless recursive loop between AsanTSDGet() and the __tls_get_addr() interceptor, and crash with DEADLYSIGNAL due to stack overflow. I haven't found the time to further diagnose this.
wrote:>> On 7 Feb 2019, at 16:41, Hans Wennborg via Release-testers
<release-testers@lists.llvm.org> wrote:> > 8.0.0-rc2 has been tagged
from the release_80 branch at r353413.> >> > Please run the test
script, share your results, and upload binaries.>> Unfortunately I had
to disable compiler-rt for this test run, as most of the sanitizers
are totally broken. They get into an endless recursive loop between
AsanTSDGet() and the __tls_get_addr() interceptor, and crash with
DEADLYSIGNAL due to stack overflow. I haven't found the time to
further diagnose this.:-/ I don't remember hearing this before, so
sounds like it's a regression from rc1? Even if you don't have time to
investigate right now, can you please file a bug to make sure I don't
forget?