Open steven-johnson opened 9 months ago
FYI, my LLVM CMake build config looks like:
cmake \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX="${HOME}/llvm-$n-install" \
-D BUILTINS_CMAKE_ARGS=-DCOMPILER_RT_ENABLE_IOS=OFF \
-D LLVM_BUILD_32_BITS=OFF \
-D LLVM_CCACHE_BUILD=ON \
-D LLVM_CCACHE_MAXSIZE=20G \
-D LLVM_ENABLE_ASSERTIONS=ON \
-D LLVM_ENABLE_BINDINGS=OFF \
-D LLVM_ENABLE_DIA_SDK=OFF \
-D LLVM_ENABLE_CURL=OFF \
-D LLVM_ENABLE_HTTPLIB=OFF \
-D LLVM_ENABLE_IDE=OFF \
-D LLVM_ENABLE_LIBXML2=OFF \
-D LLVM_ENABLE_OCAMLDOC=OFF \
-D LLVM_ENABLE_PROJECTS="clang;lld;clang-tools-extra" \
-D LLVM_ENABLE_RUNTIMES="compiler-rt;libcxx;libcxxabi;libunwind" \
-D LLVM_ENABLE_RTTI=ON \
-D LLVM_ENABLE_TERMINFO=OFF \
-D LLVM_ENABLE_WARNINGS=OFF \
-D LLVM_ENABLE_ZLIB=ON \
-D LLVM_ENABLE_ZSTD=OFF \
-D LLVM_INCLUDE_BENCHMARKS=OFF \
-D LLVM_INCLUDE_EXAMPLES=OFF \
-D LLVM_INCLUDE_TESTS=OFF \
-D LLVM_TARGETS_TO_BUILD="X86;ARM;NVPTX;AArch64;PowerPC;Hexagon;WebAssembly;RISCV" \
This is actually pretty baffling: LLVM 17 and 16 build just fine for me, but I tried to bisect an injection point and get the same failure mode all the way back to November revisions of the main
branch. Something peculiar about my build environment? Suggestions welcome.
@steven-johnson Is it possible to extract the IR before the crashing pass, via -mllvm -print-on-crash -mllvm -print-module-scope
(might take very long if the module is big) or -mllvm -print-before=constraint-elimination -mllvm -print-module-scope
(might print a lot but might be quicker)
I'm now unable to repro the failure (baffling) -- I'm closing this until I can repro. Sorry for the noise.
This happens when building LLVM with GCC 13.
This started occurring with https://github.com/llvm/llvm-project/commit/673a4671f3e8b7158d990f6456428175a6eac38c, see the comments there.
The bug manifests like this:
; RUN: opt -S -passes=instcombine < %s
define i8 @test() {
%sub = sub i8 10, 8
ret i8 %sub
}
Results in:
define i8 @test() {
ret i8 sub (i8 10, i8 8)
}
So we end up creating a constant expression instead of folding to a constant.
Per https://bugzilla.redhat.com/show_bug.cgi?id=2255518 this affects the GCC 13.2 from Fedora, but not the one from Ubuntu.
49e3e7514309823e39627175d5337c5d5aff92c1 perturbs things just enough to avoid the miscompile.
Building on x86 Linux at commit e775ba384efe31928bac796b2a4d388a1c298c5e:
Multiple crashes, first one below, remainder in enclosed text file/
cfiles.zip shfiles.zip crash.dump.txt