powerpc64 head -r344825: system-clang (8.0.0) asserts compiling mesa-dri-18.3.2_2's glsl/ir_clone.cpp: "Target supports vector op, but scalar requires expansion?"

Mark Millard via freebsd-ppc <[email protected]>
Newsgroups gmane.os.freebsd.devel.ppc,gmane.os.freebsd.devel.toolchain,gmane.os.freebsd.devel.ports
Message-ID <[email protected]>
The below is from a ports-mgmt/poudriere-devel run under FreeBSD head
-r344825 on an old PowerMac G5 (2 sockets, 2 cores each, powerpc64).
The /usr/ports is from head -r494751 . buildworld buildkernel
was via devel/powerpc64-xtoolchain-gcc materials and system-clang
(8.0.0) was built (and installed as cc/c++) as part of that.
/usr/ports/base/binutils was used to supply the system binutils,
including ld. (Running the PowerPC G5 for this context does require
some hacks in /usr/src/ currently.)

Being a poudriere-devel run, the /tmp/nir_constant_expressions-be5a21.*
are not available (not recorded  in the tar of the failure). (Too
bad there is a mismatch betting poudriere's capture and where such
files are placed.)

But I do have a gdb based backtrace from the:

work/mesa-18.3.2/src/compiler/cc.15701.core

The assert was the one in:

  case ISD::FTRUNC: {
    // We're going to widen this vector op to a legal type by padding with undef
    // elements. If the wide vector op is eventually going to be expanded to
    // scalar libcalls, then unroll into scalar ops now to avoid unnecessary
    // libcalls on the undef elements. We are assuming that if the scalar op
    // requires expanding, then the vector op needs expanding too.
    EVT VT = N->getValueType(0);
    if (TLI.isOperationExpand(N->getOpcode(), VT.getScalarType())) {
      EVT WideVecVT = TLI.getTypeToTransformTo(*DAG.getContext(), VT);
      assert(!TLI.isOperationLegalOrCustom(N->getOpcode(), WideVecVT) &&
             "Target supports vector op, but scalar requires expansion?");
      Res = DAG.UnrollVectorOp(N, WideVecVT.getVectorNumElements());
      break;
    }


(gdb) info threads
  Id   Target Id         Frame 
* 1    LWP 100119        0x00000000137251e8 in .__sys_thr_kill () at thr_kill.S:3
(gdb) bt
#0  0x00000000137251e8 in .__sys_thr_kill () at thr_kill.S:3
#1  0x00000000137247bc in __raise (s=<optimized out>) at /usr/src/lib/libc/gen/raise.c:52
#2  0x00000000136e6410 in abort () at /usr/src/lib/libc/stdlib/abort.c:79
#3  0x0000000013712fd8 in __assert (func=<optimized out>, file=<optimized out>, line=<optimized out>, failedexpr=<optimized out>) at /usr/src/lib/libc/gen/assert.c:51
#4  0x000000001351f20c in llvm::DAGTypeLegalizer::WidenVectorResult () at /usr/src/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp:2531
#5  0x0000000012f1d7d8 in llvm::DAGTypeLegalizer::run () at /usr/src/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp:281
#6  0x0000000012f1eab4 in llvm::SelectionDAG::LegalizeTypes () at /usr/src/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp:1115
#7  0x0000000012db9e50 in llvm::SelectionDAGISel::CodeGenAndEmitDAG () at /usr/src/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:776
#8  0x0000000012dbf934 in llvm::SelectionDAGISel::SelectAllBasicBlocks () at /usr/src/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1784
#9  0x0000000012dc2668 in llvm::SelectionDAGISel::runOnMachineFunction () at /usr/src/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:471
#10 0x00000000120edfc8 in runOnMachineFunction () at /usr/src/contrib/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp:155
#11 0x00000000130514b4 in llvm::MachineFunctionPass::runOnFunction () at /usr/src/contrib/llvm/lib/CodeGen/MachineFunctionPass.cpp:74
#12 0x000000001296d640 in llvm::FPPassManager::runOnFunction () at /usr/src/contrib/llvm/lib/IR/LegacyPassManager.cpp:1644
#13 0x000000001296d908 in llvm::FPPassManager::runOnModule () at /usr/src/contrib/llvm/lib/IR/LegacyPassManager.cpp:1679
#14 0x000000001296e780 in runOnModule () at /usr/src/contrib/llvm/lib/IR/LegacyPassManager.cpp:1744
#15 llvm::legacy::PassManagerImpl::run () at /usr/src/contrib/llvm/lib/IR/LegacyPassManager.cpp:1857
#16 0x0000000010bbac7c in EmitAssembly () at /usr/src/contrib/llvm/tools/clang/lib/CodeGen/BackendUtil.cpp:882
#17 0x0000000010bbc9a8 in clang::EmitBackendOutput () at /usr/src/contrib/llvm/tools/clang/lib/CodeGen/BackendUtil.cpp:1318
#18 0x00000000103cd0b0 in clang::BackendConsumer::HandleTranslationUnit () at /usr/src/contrib/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp:295
#19 0x0000000010821d40 in clang::ParseAST () at /usr/src/contrib/llvm/tools/clang/lib/Parse/ParseAST.cpp:170
#20 0x000000001080d528 in clang::ASTFrontendAction::ExecuteAction () at /usr/src/contrib/llvm/tools/clang/lib/Frontend/FrontendAction.cpp:1037
#21 0x00000000103cc108 in clang::CodeGenAction::ExecuteAction () at /usr/src/contrib/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp:1048
#22 0x0000000010811eb0 in clang::FrontendAction::Execute () at /usr/src/contrib/llvm/tools/clang/lib/Frontend/FrontendAction.cpp:935
#23 0x00000000111b1960 in clang::CompilerInstance::ExecuteAction () at /usr/src/contrib/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp:955
#24 0x00000000103b602c in clang::ExecuteCompilerInvocation () at /usr/src/contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:268
#25 0x00000000103a47c8 in cc1_main () at /usr/src/contrib/llvm/tools/clang/tools/driver/cc1_main.cpp:219
#26 0x0000000010346908 in ExecuteCC1Tool () at /usr/src/contrib/llvm/tools/clang/tools/driver/driver.cpp:310
#27 main () at /usr/src/contrib/llvm/tools/clang/tools/driver/driver.cpp:382


For reference:

libtool: compile:  c++ -DPACKAGE_NAME=\"Mesa\" -DPACKAGE_TARNAME=\"mesa\" -DPACKAGE_VERSION=\"18.3.2\" "-DPACKAGE_STRING=\"Mesa 18.3.2\"" "-DPACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa\"" -DPACKAGE_URL=\"\" -DPACKAGE=\"mesa\" -DVERSION=\"18.3.2\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DYYTEXT_POINTER=1 -DHAVE___BUILTIN_BSWAP32=1 -DHAVE___BUILTIN_BSWAP64=1 -DHAVE___BUILTIN_CLZ=1 -DHAVE___BUILTIN_CLZLL=1 -DHAVE___BUILTIN_CTZ=1 -DHAVE___BUILTIN_EXPECT=1 -DHAVE___BUILTIN_FFS=1 -DHAVE___BUILTIN_FFSLL=1 -DHAVE___BUILTIN_POPCOUNT=1 -DHAVE___BUILTIN_POPCOUNTLL=1 -DHAVE___BUILTIN_U
 NREACHABLE=1 -DHAVE_FUNC_ATTRIBUTE_CONST=1 -DHAVE_FUNC_ATTRIBUTE_FLATTEN=1 -DHAVE_FUNC_ATTRIBUTE_FORMAT=1 -DHAVE_FUNC_ATTRIBUTE_MALLOC=1 -DHAVE_FUNC_ATTRIBUTE_PACKED=1 -DHAVE_FUNC_ATTRIBUTE_PURE=1 -
 DHAVE_FUNC_ATTRIBUTE_RETURNS_NONNULL=1 -DHAVE_FUNC_ATTRIBUTE_UNUSED=1 -DHAVE_FUNC_ATTRIBUTE_VISIBILITY=1 -DHAVE_FUNC_ATTRIBUTE_WARN_UNUSED_RESULT=1 -DHAVE_FUNC_ATTRIBUTE_WEAK=1 -DHAVE_FUNC_ATTRIBUTE_ALIAS=1 -DHAVE_FUNC_ATTRIBUTE_NORETURN=1 -DHAVE_DLADDR=1 -DHAVE_CLOCK_GETTIME=1 -DHAVE_CLOCK_NANOSLEEP=1 -DHAVE_PTHREAD_PRIO_INHERIT=1 -DHAVE_PTHREAD=1 -DHAVE_SYS_UMTX_H=1 -DENABLE_ST_OMX_BELLAGIO=0 -DENABLE_ST_OMX_TIZONIA=0 -I. -I../../include -I../../src -I../../src/mapi -I../../src/mesa/ -I../../src/compiler/glsl -I../../src/compiler/glsl -I../../src/compiler/glsl/glcpp -I../../src/compiler/nir -I../../src/compiler/nir -I../../src/compiler/spirv -I../../src/gallium/include -I../../src/gallium/auxiliary -I../../src/gtest/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_
 MACROS -DUSE_GCC_ATOMIC_BUILTINS -DNDEBUG -DHAVE_XLOCALE_H -DHAVE_SYS_SYSCTL_H -DHAVE_DLFCN_H -DHAVE_STRTOF -DHAVE_MKOSTEMP -DHAVE_TIMESPEC_GET -DHAVE_STRTOD_L -DHAVE_DL_ITERATE_PHDR -DHAVE_POSIX_ME
 MALIGN -DHAVE_ZLIB -DHAVE_PTHREAD_SETAFFINITY -DHAVE_LINUX_FUTEX_H -DHAVE_LIBDRM -DGLX_USE_DRM -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DHAVE_X11_PLATFORM -DHAVE_SURFACELESS_PLATFORM -DHAVE_DRM_PLATFORM -DHAVE_WAYLAND_PLATFORM -DWL_HIDE_DEPRECATED -DHAVE_DRI3 -DHAVE_DRI3_MODIFIERS -DENABLE_SHADER_CACHE -DHAVE_MINCORE -DHAVE_LLVM=0x0600 -DMESA_LLVM_VERSION_PATCH=1 -isystem /usr/local/include -fvisibility=hidden -Werror=pointer-arith -Werror=vla -O2 -pipe -g -isystem /usr/local/include -fno-strict-aliasing -isystem /usr/local/include -Wall -fno-math-errno -fno-trapping-math -Wno-missing-field-initializers -Qunused-arguments -MT glsl/ir_builder.lo -MD -MP -MF glsl/.deps/ir_builder.Tpo -c glsl/ir_builder.cpp  -fPIC -DPIC -o glsl/.libs/ir_builder.o
libtool: compile:  c++ -DPACKAGE_NAME=\"Mesa\" -DPACKAGE_TARNAME=\"mesa\" -DPACKAGE_VERSION=\"18.3.2\" "-DPACKAGE_STRING=\"Mesa 18.3.2\"" "-DPACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa\"" -DPACKAGE_URL=\"\" -DPACKAGE=\"mesa\" -DVERSION=\"18.3.2\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DYYTEXT_POINTER=1 -DHAVE___BUILTIN_BSWAP32=1 -DHAVE___BUILTIN_BSWAP64=1 -DHAVE___BUILTIN_CLZ=1 -DHAVE___BUILTIN_CLZLL=1 -DHAVE___BUILTIN_CTZ=1 -DHAVE___BUILTIN_EXPECT=1 -DHAVE___BUILTIN_FFS=1 -DHAVE___BUILTIN_FFSLL=1 -DHAVE___BUILTIN_POPCOUNT=1 -DHAVE___BUILTIN_POPCOUNTLL=1 -DHAVE___BUILTIN_U
 NREACHABLE=1 -DHAVE_FUNC_ATTRIBUTE_CONST=1 -DHAVE_FUNC_ATTRIBUTE_FLATTEN=1 -DHAVE_FUNC_ATTRIBUTE_FORMAT=1 -DHAVE_FUNC_ATTRIBUTE_MALLOC=1 -DHAVE_FUNC_ATTRIBUTE_PACKED=1 -DHAVE_FUNC_ATTRIBUTE_PURE=1 -
 DHAVE_FUNC_ATTRIBUTE_RETURNS_NONNULL=1 -DHAVE_FUNC_ATTRIBUTE_UNUSED=1 -DHAVE_FUNC_ATTRIBUTE_VISIBILITY=1 -DHAVE_FUNC_ATTRIBUTE_WARN_UNUSED_RESULT=1 -DHAVE_FUNC_ATTRIBUTE_WEAK=1 -DHAVE_FUNC_ATTRIBUTE_ALIAS=1 -DHAVE_FUNC_ATTRIBUTE_NORETURN=1 -DHAVE_DLADDR=1 -DHAVE_CLOCK_GETTIME=1 -DHAVE_CLOCK_NANOSLEEP=1 -DHAVE_PTHREAD_PRIO_INHERIT=1 -DHAVE_PTHREAD=1 -DHAVE_SYS_UMTX_H=1 -DENABLE_ST_OMX_BELLAGIO=0 -DENABLE_ST_OMX_TIZONIA=0 -I. -I../../include -I../../src -I../../src/mapi -I../../src/mesa/ -I../../src/compiler/glsl -I../../src/compiler/glsl -I../../src/compiler/glsl/glcpp -I../../src/compiler/nir -I../../src/compiler/nir -I../../src/compiler/spirv -I../../src/gallium/include -I../../src/gallium/auxiliary -I../../src/gtest/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_
 MACROS -DUSE_GCC_ATOMIC_BUILTINS -DNDEBUG -DHAVE_XLOCALE_H -DHAVE_SYS_SYSCTL_H -DHAVE_DLFCN_H -DHAVE_STRTOF -DHAVE_MKOSTEMP -DHAVE_TIMESPEC_GET -DHAVE_STRTOD_L -DHAVE_DL_ITERATE_PHDR -DHAVE_POSIX_ME
 MALIGN -DHAVE_ZLIB -DHAVE_PTHREAD_SETAFFINITY -DHAVE_LINUX_FUTEX_H -DHAVE_LIBDRM -DGLX_USE_DRM -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DHAVE_X11_PLATFORM -DHAVE_SURFACELESS_PLATFORM -DHAVE_DRM_PLATFORM -DHAVE_WAYLAND_PLATFORM -DWL_HIDE_DEPRECATED -DHAVE_DRI3 -DHAVE_DRI3_MODIFIERS -DENABLE_SHADER_CACHE -DHAVE_MINCORE -DHAVE_LLVM=0x0600 -DMESA_LLVM_VERSION_PATCH=1 -isystem /usr/local/include -fvisibility=hidden -Werror=pointer-arith -Werror=vla -O2 -pipe -g -isystem /usr/local/include -fno-strict-aliasing -isystem /usr/local/include -Wall -fno-math-errno -fno-trapping-math -Wno-missing-field-initializers -Qunused-arguments -MT glsl/ir_clone.lo -MD -MP -MF glsl/.deps/ir_clone.Tpo -c glsl/ir_clone.cpp  -fPIC -DPIC -o glsl/.libs/ir_clone.o
cc: error: unable to execute command: Abort trap (core dumped)
cc: error: clang frontend command failed due to signal (use -v to see invocation)
FreeBSD clang version 8.0.0 (branches/release_80 355313) (based on LLVM 8.0.0)
Target: powerpc64-unknown-freebsd13.0
Thread model: posix
InstalledDir: /usr/bin
cc: note: diagnostic msg: PLEASE submit a bug report to https://bugs.freebsd.org/submit/ and include the crash backtrace, preprocessed source, and associated run script.
cc: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
cc: note: diagnostic msg: /tmp/nir_constant_expressions-be5a21.c
cc: note: diagnostic msg: /tmp/nir_constant_expressions-be5a21.sh
cc: note: diagnostic msg: 



===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)

_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-ppc
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.