Issue 203184
Summary `SLPVectorizer.cpp` build failure on older clang versions
Labels build-problem, llvm:SLPVectorizer
Assignees
Reporter tbaederr
    The llvm-x86_64-debian-dylib builder has been broken for a while now with:
```console
/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:1033:17: error: static_assert _expression_ is not an integral constant _expression_
 static_assert(llvm::is_sorted_constexpr(SupportedOp) &&
 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/stl_function.h:601:11: note: read of temporary is not allowed in a constant _expression_ outside the _expression_ that created the temporary
        { return std::forward<_Tp>(__t) < std::forward<_Up>(__u); }
 ^
/usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/bits/stl_function.h:586:11: note: in call to '_S_cmp({Instruction::Add, Instruction::Sub, Instruction::Mul, Instruction::Shl, Instruction::AShr, Instruction::And, Instruction::Or, Instruction::Xor}[1], {Instruction::Add, Instruction::Sub, Instruction::Mul, Instruction::Shl, Instruction::AShr, Instruction::And, Instruction::Or, Instruction::Xor}[0], {})'
          return _S_cmp(std::forward<_Tp>(__t), std::forward<_Up>(__u),
 ^
/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/include/llvm/ADT/STLForwardCompat.h:172:9: note: in call to '&C->operator()({Instruction::Add, Instruction::Sub, Instruction::Mul, Instruction::Shl, Instruction::AShr, Instruction::And, Instruction::Or, Instruction::Xor}[1], {Instruction::Add, Instruction::Sub, Instruction::Mul, Instruction::Shl, Instruction::AShr, Instruction::And, Instruction::Or, Instruction::Xor}[0])'
    if (C(*I, *Prev))
 ^
/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/include/llvm/ADT/STLExtras.h:1984:10: note: in call to 'is_sorted_constexpr(&{Instruction::Add, Instruction::Sub, Instruction::Mul, Instruction::Shl, Instruction::AShr, Instruction::And, Instruction::Or, Instruction::Xor}[0], &{Instruction::Add, Instruction::Sub, Instruction::Mul, Instruction::Shl, Instruction::AShr, Instruction::And, Instruction::Or, Instruction::Xor}[8], {})'
  return llvm::is_sorted_constexpr(adl_begin(Range), adl_end(Range), C);
 ^
/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:1033:17: note: in call to 'is_sorted_constexpr(SupportedOp, {})'
 static_assert(llvm::is_sorted_constexpr(SupportedOp) &&
 ^
/b/1/llvm-x86_64-debian-dylib/llvm-project/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:1030:66: note: temporary created here
  constexpr static std::initializer_list<unsigned> SupportedOp = {
 
```

According to https://llvm.org/docs/GettingStarted.html#host-c-toolchain-both-compiler-and-standard-library, clang 5.0 should be working to compile LLVM.

The builder is using clang 11.


_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to