Created attachment 200593 [details] av1/encoder/x86/av1_fwd_txfm2d_avx2.c (compressed, preprocessed) After https://aomedia.googlesource.com/aom/+/aa7195d608e0%5E%21/ the port no longer builds on -CURRENT: $ make [...] FAILED: CMakeFiles/aom_av1_encoder_avx2_intrinsics.dir/av1/encoder/x86/av1_fwd_txfm2d_avx2.c.o /usr/bin/cc -I/wrkdirs/usr/ports/multimedia/aom/work/aom-1.0.0-1115-ga1ebb57ec -I. -I/wrkdirs/usr/ports/multimedia/aom/work/aom-1.0.0-1115-ga1ebb57ec/apps -I/wrkdirs/usr/ports/multimedia/aom/work/aom-1.0.0-1115-ga1ebb57ec/common -I/wrkdirs/usr/ports/multimedia/aom/work/aom-1.0.0-1115-ga1ebb57ec/examples -I/wrkdirs/usr/ports/multimedia/aom/work/aom-1.0.0-1115-ga1ebb57ec/stats -I/wrkdirs/usr/ports/multimedia/aom/work/aom-1.0.0-1115-ga1ebb57ec/third_party/libyuv/include -I/wrkdirs/usr/ports/multimedia/aom/work/aom-1.0.0-1115-ga1ebb57ec/third_party/libwebm -O2 -pipe -fstack-protector -fno-strict-aliasing -O2 -pipe -fstack-protector -fno-strict-aliasing -std=c99 -Wall -Wdisabled-optimization -Wextra -Wfloat-conversion -Wimplicit-function-declaration -Wpointer-arith -Wsign-compare -Wstring-conversion -Wtype-limits -Wuninitialized -Wunused -Wvla -Wshorten-64-to-32 -Wshadow -Wundef -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fPIC -mavx2 -MD -MT CMakeFiles/aom_av1_encoder_avx2_intrinsics.dir/av1/encoder/x86/av1_fwd_txfm2d_avx2.c.o -MF CMakeFiles/aom_av1_encoder_avx2_intrinsics.dir/av1/encoder/x86/av1_fwd_txfm2d_avx2.c.o.d -o CMakeFiles/aom_av1_encoder_avx2_intrinsics.dir/av1/encoder/x86/av1_fwd_txfm2d_avx2.c.o -c /wrkdirs/usr/ports/multimedia/aom/work/aom-1.0.0-1115-ga1ebb57ec/av1/encoder/x86/av1_fwd_txfm2d_avx2.c Assertion failed: ((VT.getVectorNumElements() + N2C->getZExtValue() <= N1.getValueType().getVectorNumElements()) && "Extract subvector overflow!"), function getNode, file /poudriere/jails/head-amd64/usr/src/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp, line 4708. cc: error: unable to execute command: Abort trap cc: error: clang frontend command failed due to signal (use -v to see invocation) FreeBSD clang version 7.0.1 (branches/release_70 348686) (based on LLVM 7.0.1) Target: x86_64-unknown-freebsd13.0 Thread model: posix InstalledDir: /usr/bin
Created attachment 200594 [details] command line args (for clang 7)
Outside my scope. I can mark it as BROKEN_FreeBSD_13 or USES=compiler:gcc-c++11-lib. Clang 6 reached EOL upstream, so it isn't good idea to downgrade to.
Reproduced, minimized and reported upstream: https://bugs.llvm.org/show_bug.cgi?id=40181
A commit references this bug: Author: dim Date: Sat Dec 29 15:13:49 UTC 2018 New revision: 342592 URL: https://svnweb.freebsd.org/changeset/base/342592 Log: Pull in r342397 from upstream llvm trunk (by Amara Emerson): Revert "Revert r342183 "[DAGCombine] Fix crash when store merging created an extract_subvector with invalid index."" Fixed the assertion failure. Differential Revision: https://reviews.llvm.org/D51831 This fixes 'Assertion failed: ((VT.getVectorNumElements() + N2C->getZExtValue() <= N1.getValueType().getVectorNumElements()) && "Extract subvector overflow!"), function getNode' when building the multimedia/aom port (with AVX2 enabled). Reported by: jbeich PR: 234480 MFC after: 6 weeks X-MFC-With: r341825 Changes: head/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Please re-check after base r342592, and close if it is now fixed.
A commit references this bug: Author: dim Date: Sat Dec 29 15:21:51 UTC 2018 New revision: 342593 URL: https://svnweb.freebsd.org/changeset/base/342593 Log: Pull in r342863 from upstream llvm trunk (by Hans Wennborg): Remove debug printf leftover from r342397 PR: 234480 MFC after: 6 weeks X-MFC-With: r341825 Changes: head/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Crash on compile now Assertion failed: ((VT.getVectorNumElements() + N2C->getZExtValue() <= N1.getValueType().getVectorNumElements()) && "Extract subvector overflow!"), function getNode, file /usr/ports/devel/llvm70/work/llvm-7.0.1.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp, line 4708. Stack dump: 0. Program arguments: /usr/local/llvm70/bin/clang-7 -cc1 -triple x86_64-portbld-freebsd11.2 -emit-obj -disable-free -main-file-name av1_fwd_txfm2d_avx2.c -mrelocation-model pic -pic-level 2 -mthread-model posix -mdisable-fp-elim -relaxed-aliasing -masm-verbose -mconstructor-aliases -munwind-tables -target-cpu x86-64 -target-feature +avx2 -dwarf-column-info -debugger-tuning=gdb -coverage-notes-file /usr/ports/multimedia/aom/work/.build/CMakeFiles/aom_av1_encoder_avx2_intrinsics.dir/av1/encoder/x86/av1_fwd_txfm2d_avx2.c.gcno -resource-dir /usr/local/llvm70/lib/clang/7.0.1 -dependency-file CMakeFiles/aom_av1_encoder_avx2_intrinsics.dir/av1/encoder/x86/av1_fwd_txfm2d_avx2.c.o.d -sys-header-deps -MT CMakeFiles/aom_av1_encoder_avx2_intrinsics.dir/av1/encoder/x86/av1_fwd_txfm2d_avx2.c.o -I /usr/ports/multimedia/aom/work/aom-1.0.0-1115-ga1ebb57ec -I . -I /usr/ports/multimedia/aom/work/aom-1.0.0-1115-ga1ebb57ec/apps -I /usr/ports/multimedia/aom/work/aom-1.0.0-1115-ga1ebb57ec/common -I /usr/ports/multimedia/aom/work/aom-1.0.0-1115-ga1ebb57ec/examples -I /usr/ports/multimedia/aom/work/aom-1.0.0-1115-ga1ebb57ec/stats -I /usr/ports/multimedia/aom/work/aom-1.0.0-1115-ga1ebb57ec/third_party/libyuv/include -I /usr/ports/multimedia/aom/work/aom-1.0.0-1115-ga1ebb57ec/third_party/libwebm -U _FORTIFY_SOURCE -D _FORTIFY_SOURCE=0 -D _LARGEFILE_SOURCE -D _FILE_OFFSET_BITS=64 -O2 -Wall -Wdisabled-optimization -Wextra -Wfloat-conversion -Wimplicit-function-declaration -Wpointer-arith -Wsign-compare -Wstring-conversion -Wtype-limits -Wuninitialized -Wunused -Wvla -Wshorten-64-to-32 -Wshadow -Wundef -std=c99 -fdebug-compilation-dir /usr/ports/multimedia/aom/work/.build -ferror-limit 19 -fmessage-length 0 -stack-protector 1 -fobjc-runtime=gnustep -fdiagnostics-show-option -vectorize-loops -vectorize-slp -o CMakeFiles/aom_av1_encoder_avx2_intrinsics.dir/av1/encoder/x86/av1_fwd_txfm2d_avx2.c.o -x c /usr/ports/multimedia/aom/work/aom-1.0.0-1115-ga1ebb57ec/av1/encoder/x86/av1_fwd_txfm2d_avx2.c -faddrsig 1. <eof> parser at end of file 2. Code generation 3. Running pass 'Function Pass Manager' on module '/usr/ports/multimedia/aom/work/aom-1.0.0-1115-ga1ebb57ec/av1/encoder/x86/av1_fwd_txfm2d_avx2.c'. 4. Running pass 'X86 DAG->DAG Instruction Selection' on function '@lowbd_fwd_txfm2d_16x8_avx2' #0 0x0000000802fc5ef8 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/usr/local/llvm70/lib/libLLVM-7.so+0x9c5ef8) #1 0x0000000802fc41c5 llvm::sys::RunSignalHandlers() (/usr/local/llvm70/lib/libLLVM-7.so+0x9c41c5) #2 0x0000000802fc6502 (/usr/local/llvm70/lib/libLLVM-7.so+0x9c6502) #3 0x00000008023a2946 handle_signal /usr/src/lib/libthr/thread/thr_sig.c:0:3 #4 0x00000008023a1eb2 thr_sighandler /usr/src/lib/libthr/thread/thr_sig.c:190:1 clang-7: error: unable to execute command: Abort trap (core dumped) clang-7: error: clang frontend command failed due to signal (use -v to see invocation) clang version 7.0.1 (tags/RELEASE_701/final) Target: x86_64-portbld-freebsd11.2 Thread model: posix InstalledDir: /usr/local/llvm70/bin clang-7: note: diagnostic msg: PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script. clang-7: note: diagnostic msg: ******************** PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT: Preprocessed source(s) and associated run script(s) are located at: clang-7: note: diagnostic msg: /tmp/av1_fwd_txfm2d_avx2-53ee92.c clang-7: note: diagnostic msg: /tmp/av1_fwd_txfm2d_avx2-53ee92.sh clang-7: note: diagnostic msg: ******************** ninja: build stopped: subcommand failed. ===> Compilation failed unexpectedly. Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to the maintainer. *** Error code 1 Stop. make: stopped in /usr/ports/multimedia/aom
(In reply to doctor from comment #7) > Crash on compile now > > Assertion failed: ((VT.getVectorNumElements() + N2C->getZExtValue() <= > N1.getValueType().getVectorNumElements()) && "Extract subvector overflow!"), > function getNode, file > /usr/ports/devel/llvm70/work/llvm-7.0.1.src/lib/CodeGen/SelectionDAG/ > SelectionDAG.cpp, line 4708. > Stack dump: > 0. Program arguments: /usr/local/llvm70/bin/clang-7 Ah, you're using the port version of clang 7.0, which doesn't yet have the patch. It's a little annoying that we have to apply those in two places. Brooks, are you OK with adding the patches of base r342592 and base r342593 to the llvm70 port? I can put up review if you like
(In reply to Dimitry Andric from comment #5) > Please re-check after base r342592, and close if it is now fixed. I confirm, builds fine on -CURRENT with base Clang 7: - 13.0 i386: https://ptpb.pw/-noq (CPUTYPE=native) - 13.0 amd64: https://ptpb.pw/qPa_ Leaving open per comment 8.
Created https://reviews.freebsd.org/D18691 for adding those patches to the devel/llvm70 port.
A commit references this bug: Author: brooks Date: Thu Jan 3 18:10:22 UTC 2019 New revision: 489195 URL: https://svnweb.freebsd.org/changeset/ports/489195 Log: Backport two Objective-C bug fixes (D18672) Add patches for head rS342592 and rS342593 (D18691) Add patch files for head rS342592 and rS342593, which correspond to the following upstream revisions: https://reviews.llvm.org/rL342397 https://reviews.llvm.org/rL342397 These fix an 'Assertion failed: ((VT.getVectorNumElements() + N2C->getZExtValue() <= N1.getValueType().getVectorNumElements()) && "Extract subvector overflow!"), function getNode' when building the multimedia/aom port (with AVX2 enabled). PR: 234480 Submitted by: theraven, dim Differential Revision: https://reviews.freebsd.org/D18672 Differential Revision: https://reviews.freebsd.org/D18691 Changes: head/devel/llvm70/Makefile head/devel/llvm70/files/clang/patch-tools_clang_lib_CodeGen_CGObjCGNU.cpp head/devel/llvm70/files/patch-head-r342592.diff head/devel/llvm70/files/patch-head-r342593.diff
MFH of crash fixes is covered by "ports-secteam blanket". https://www.freebsd.org/doc/en/articles/committers-guide/ports.html#ports-qa-blanket
A commit references this bug: Author: brooks Date: Fri Jan 4 16:16:32 UTC 2019 New revision: 489257 URL: https://svnweb.freebsd.org/changeset/ports/489257 Log: MFH: r489195 (reliability fix blanket) Backport two Objective-C bug fixes (D18672) Add patches for head rS342592 and rS342593 (D18691) Add patch files for head rS342592 and rS342593, which correspond to the following upstream revisions: https://reviews.llvm.org/rL342397 https://reviews.llvm.org/rL342397 These fix an 'Assertion failed: ((VT.getVectorNumElements() + N2C->getZExtValue() <= N1.getValueType().getVectorNumElements()) && "Extract subvector overflow!"), function getNode' when building the multimedia/aom port (with AVX2 enabled). PR: 234480 Submitted by: theraven, dim Differential Revision: https://reviews.freebsd.org/D18672 Differential Revision: https://reviews.freebsd.org/D18691 Approved by: ports-secteam (reliability fix blanket) Changes: _U branches/2019Q1/ branches/2019Q1/devel/llvm70/Makefile branches/2019Q1/devel/llvm70/files/clang/patch-tools_clang_lib_CodeGen_CGObjCGNU.cpp branches/2019Q1/devel/llvm70/files/patch-head-r342592.diff branches/2019Q1/devel/llvm70/files/patch-head-r342593.diff
A commit references this bug: Author: dim Date: Sat Feb 9 12:01:11 UTC 2019 New revision: 343935 URL: https://svnweb.freebsd.org/changeset/base/343935 Log: MFC r342592: Pull in r342397 from upstream llvm trunk (by Amara Emerson): Revert "Revert r342183 "[DAGCombine] Fix crash when store merging created an extract_subvector with invalid index."" Fixed the assertion failure. Differential Revision: https://reviews.llvm.org/D51831 This fixes 'Assertion failed: ((VT.getVectorNumElements() + N2C->getZExtValue() <= N1.getValueType().getVectorNumElements()) && "Extract subvector overflow!"), function getNode' when building the multimedia/aom port (with AVX2 enabled). Reported by: jbeich PR: 234480 Changes: _U stable/11/ stable/11/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp _U stable/12/ stable/12/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp