Skip to content

[SPIRV] Do not use OpTypeRuntimeArray in Kernel env.#149522

Merged
MrSidims merged 22 commits intollvm:mainfrom
maarquitos14:maronas/optypearray-kernel
Aug 5, 2025
Merged

[SPIRV] Do not use OpTypeRuntimeArray in Kernel env.#149522
MrSidims merged 22 commits intollvm:mainfrom
maarquitos14:maronas/optypearray-kernel

Conversation

@maarquitos14
Copy link
Contributor

@maarquitos14 maarquitos14 commented Jul 18, 2025

Prior to this patch, when NumElems was 0, OpTypeRuntimeArray was directly generated, but it requires Shader capability, so it can only be generated if Shader env is being used. We have observed a pattern of using unbound arrays that translate into [0 x ...] types in OpenCL, which implies Kernel capability, so OpTypeRuntimeArray should not be used. To prevent this scenario, this patch simplifies GEP instructions where type is a 0-length array and the first index is also 0. In such scenario, we effectively drop the 0-length array and the first index.

Additionally, the newly added test prior to this patch was generating a module with both Shader and Kernel capabilities at the same time, but they're incompatible. This patch also fixes that.

Finally, prior to this patch, the newly added test was adding Shader capability to the module even with the command line flag --avoid-spirv-capabilities=Shader. This patch also has a fix for that.

@llvmbot
Copy link
Member

llvmbot commented Jul 18, 2025

@llvm/pr-subscribers-llvm-transforms
@llvm/pr-subscribers-llvm-analysis

@llvm/pr-subscribers-backend-spir-v

Author: Marcos Maronas (maarquitos14)

Changes

Prior to this patch, when NumElems was 0, OpTypeRuntimeArray was directly generated, but it requires Shader capability, so it can only be generated if Shader env is being used.

Additionally, the newly added test prior to this patch was generating a module with both Shader and Kernel capabilities at the same time, but they're incompatible. This patch also fixes that.

Finally, prior to this patch, the newly added test was adding Shader capability to the module even with the command line flag --avoid-spirv-capabilities=Shader. This patch also has a fix for that.


Full diff: https://github.com/llvm/llvm-project/pull/149522.diff

3 Files Affected:

  • (modified) llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp (+5-3)
  • (modified) llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp (+7-1)
  • (added) llvm/test/CodeGen/SPIRV/array_type.ll (+22)
diff --git a/llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp b/llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
index 83fccdc2bdba3..982d48f2a5a76 100644
--- a/llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
+++ b/llvm/lib/Target/SPIRV/SPIRVGlobalRegistry.cpp
@@ -828,9 +828,11 @@ SPIRVType *SPIRVGlobalRegistry::getOpTypeArray(uint32_t NumElems,
          "Invalid array element type");
   SPIRVType *SpvTypeInt32 = getOrCreateSPIRVIntegerType(32, MIRBuilder);
   SPIRVType *ArrayType = nullptr;
-  if (NumElems != 0) {
-    Register NumElementsVReg =
-        buildConstantInt(NumElems, MIRBuilder, SpvTypeInt32, EmitIR);
+  const SPIRVSubtarget &ST =
+      cast<SPIRVSubtarget>(MIRBuilder.getMF().getSubtarget());
+  if (NumElems != 0 || !ST.isShader()) {
+    Register NumElementsVReg = buildConstantInt(
+        NumElems ? NumElems : 1, MIRBuilder, SpvTypeInt32, EmitIR);
     ArrayType = createOpType(MIRBuilder, [&](MachineIRBuilder &MIRBuilder) {
       return MIRBuilder.buildInstr(SPIRV::OpTypeArray)
           .addDef(createTypeVReg(MIRBuilder))
diff --git a/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp b/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
index ad976e5288927..07628c6885b81 100644
--- a/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
+++ b/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
@@ -744,8 +744,14 @@ void SPIRV::RequirementHandler::checkSatisfiable(
     IsSatisfiable = false;
   }
 
+  AvoidCapabilitiesSet AvoidCaps;
+  if (!ST.isShader())
+    AvoidCaps.S.insert(SPIRV::Capability::Shader);
+  else
+    AvoidCaps.S.insert(SPIRV::Capability::Kernel);
+
   for (auto Cap : MinimalCaps) {
-    if (AvailableCaps.contains(Cap))
+    if (AvailableCaps.contains(Cap) && !AvoidCaps.S.contains(Cap))
       continue;
     LLVM_DEBUG(dbgs() << "Capability not supported: "
                       << getSymbolicOperandMnemonic(
diff --git a/llvm/test/CodeGen/SPIRV/array_type.ll b/llvm/test/CodeGen/SPIRV/array_type.ll
new file mode 100644
index 0000000000000..0957a7d191922
--- /dev/null
+++ b/llvm/test/CodeGen/SPIRV/array_type.ll
@@ -0,0 +1,22 @@
+; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s --check-prefix=CHECK-KERNEL
+; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown %s -o - -filetype=obj | spirv-val %}
+
+; CHECK-KERNEL: OpCapability Kernel
+; CHECK-KERNEL-NOT: OpCapability Shader 
+; CHECK-KERNEL: OpTypeArray
+; CHECK-KERNEL-NOT: OpTypeRuntimeArray
+
+%"class.sycl::_V1::detail::half_impl::half" = type { half }
+
+; Function Attrs: mustprogress norecurse nounwind
+define spir_kernel void @foo(ptr addrspace(3) noundef align 2 %_arg_temp, ptr addrspace(1) noundef align 2 %_arg_acc_a){
+entry:
+  %0 = getelementptr %"class.sycl::_V1::detail::half_impl::half", ptr addrspace(1) %_arg_acc_a, i64 15 
+  %add.ptr.i = getelementptr %"class.sycl::_V1::detail::half_impl::half", ptr addrspace(1) %0, i64 10 
+  %4 = getelementptr %"class.sycl::_V1::detail::half_impl::half", ptr addrspace(1) %add.ptr.i, i64 20 
+  %arrayidx.i5.i = getelementptr %"class.sycl::_V1::detail::half_impl::half", ptr addrspace(1) %4, i64 35
+  %arrayidx7.i = getelementptr inbounds [0 x [32 x %"class.sycl::_V1::detail::half_impl::half"]], ptr addrspace(3) %_arg_temp, i64 1, i64 25, i64 30
+  %5 = load i16, ptr addrspace(1) %arrayidx.i5.i, align 2
+  store i16 %5, ptr addrspace(3) %arrayidx7.i, align 2
+  ret void
+}

@maarquitos14
Copy link
Contributor Author

@MrSidims @Keenuts @s-perron please, take a look :)

Copy link
Contributor

@Keenuts Keenuts left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR, some comments

Comment on lines +747 to +754
AvoidCapabilitiesSet AvoidCaps;
if (!ST.isShader())
AvoidCaps.S.insert(SPIRV::Capability::Shader);
else
AvoidCaps.S.insert(SPIRV::Capability::Kernel);

for (auto Cap : MinimalCaps) {
if (AvailableCaps.contains(Cap))
if (AvailableCaps.contains(Cap) && !AvoidCaps.S.contains(Cap))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't seem useful. I recompiled your patch with only the OpRuntimeArray change the the capability is not emitted.
(Since OpTypeRuntimeArray is not added, the capability is not required).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't mind this change. It will help us identify errors of this type earlier. I'm guessing that if you do this change, and not the OpRuntimeArray change, the test case would give an error that the shader capability is not supported. This will be generally useful. We run into error like this with shader that accidentally adding the kernel capability.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's not useful because after the patch, there is no conflict anymore, but having it would have helped us caught the error much more easily. Aside from that, it's just honoring --avoid-capabilities flag: my command was explicitly passing --avoid-capabilities=shader, but it was generating shader anyway, which was not complying with the command line flag. With this change, we make sure the flag is acting as expected.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm guessing that if you do this change, and not the OpRuntimeArray change, the test case would give an error that the shader capability is not supported.

We should already have this error surfacing: after all we have a list of available capabilities by environment.
But seems like when !ST.isShader() we add OpenCL capabilities, but some are implicitely adding Shader (StorageImageReadWithoutFormat).
Removing those from the OpenCL list does surface the existing "Unable to meet requirement" error)

Comment on lines 833 to 835
if (NumElems != 0 || !ST.isShader()) {
Register NumElementsVReg = buildConstantInt(
NumElems ? NumElems : 1, MIRBuilder, SpvTypeInt32, EmitIR);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this the correct solution?
I understand OpRuntimeArray is not supported for Kernel, but seems weird to silently allow this and generate a 1-element array instead.

Are runtime arrays allowed in OpenCL?
If not, should the compiler refuse to lower a runtime array to Kernel SPIR-V?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this the correct solution?

+1

I had an offline chat with Marcos. He'll look into changing the gep pattern that is causing issue (the SYCL compiler don't need to emit this type outside some offset computation)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this the correct solution?

That's interesting Q. I lean to say: yes. This replacement will legalize few GEPs that would be UB otherwise, but since they were already UB - such replacement should be fine.

Are runtime arrays allowed in OpenCL?
If not, should the compiler refuse to lower a runtime array to Kernel SPIR-V?

OpenCL allows unbounded arrays as kernel parameters and I believe GEP to unbound array kernel argument happens in the test provided by @maarquitos14 (though I'm having troubles to get a similar IR in my experiments).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know OpenCL, but is it possible to have a zero sized array in a struct? Will making it an array of size 1 change the layout of the struct? Would it be better for the FE to change the type to an array of size 1 to avoid potential issue like that?

Copy link
Contributor

@s-perron s-perron Jul 21, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here is an example of something I would be worried about: https://godbolt.org/z/zaTT7nTvr. Note that if you optimize the code the layout is different than the unoptimized code.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BTW, @Naghasan do you happen to know, why OpTypeRuntimeArray is not allowed for Kernel? It's not looking like VLA to me.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The issue is not the access to i, but the offset of b.

The issue is that when the code is not optimized, accesses to b are done through the struct whose first element i is an array of size 1. So b is considered to be at offset 4 in the struct. Is that right? See https://godbolt.org/z/37vbjGP3r. I removed the UB.

However, if the code is optimized, the optimizer modifies the GEP to access b starting at offset 0 in the struct. From the optimizer's perspective this is correct because i is an array of size 0. See https://godbolt.org/z/fj1hfdeqo.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But examples like https://godbolt.org/z/zaTT7nTvr are already UB

This isn't UB at all, it is outside the core specs (C++ says 0 is not valid) but it is a valid compiler extension (add -pedantic and you get a warning: zero size arrays are an extension [-Wzero-length-array]). And 0 as first offset makes it perfectly fine as well (you don't move the pointer). And in other languages, there is valid reasons to have this construct.

BTW, @Naghasan do you happen to know, why OpTypeRuntimeArray is not allowed for Kernel? It's not looking like VLA to me.

This isn't linked to VLA, but a Vulkan runtime construct that isn't mappable in OpenCL

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The issue was originally found in a test similar to this --which I reduced for the sake of readability. Indeed the problem comes from an unbound array.

#include <sycl/builtins.hpp>
#include <sycl/detail/core.hpp>
#include <sycl/ext/oneapi/experimental/work_group_memory.hpp>
#include <sycl/group_barrier.hpp>
#include <sycl/half_type.hpp>

// #include <cstring>

namespace syclexp = sycl::ext::oneapi::experimental;


template <typename T, size_t N>
void swap_array_2d(T (&a)[N][N], T (&b)[N][N], size_t batch_size) {
  sycl::queue q;
  const auto size = sycl::range{N, N};
  const auto wgsize = sycl::range{batch_size, batch_size};
  {
    sycl::buffer<T, 2> buf_a{a[0], sycl::range{N, N}};
    sycl::buffer<T, 2> buf_b{b[0], sycl::range{N, N}};
    q.submit([&](sycl::handler &cgh) {
      sycl::accessor acc_a{buf_a, cgh};
      sycl::accessor acc_b{buf_b, cgh};
      syclexp::work_group_memory<T[][N]> temp{N, cgh};
      sycl::nd_range<2> ndr{size, wgsize};
      cgh.parallel_for(ndr, [=](sycl::nd_item<2> it) {
        const auto i = it.get_global_id()[0];
        const auto j = it.get_global_id()[1];
        temp[i][j] = acc_a[i][j];
        acc_a[i][j] = acc_b[i][j];
        syclexp::work_group_memory<T[][N]> temp2{temp};
        acc_b[i][j] = temp2[i][j];
      });
    });
  }
}

constexpr size_t N = 32;
template <typename T> void test() {
  T intarr1[N][N];
  T intarr2[N][N];
  for (int i = 0; i < N; ++i) {
    for (int j = 0; j < N; ++j) {
      intarr1[i][j] = T(i) + T(j);
      intarr2[i][j] = T(i) * T(j);
    }
  }
  swap_array_2d(intarr1, intarr2, 8);
}

int main() {
  sycl::queue q;
  if (q.get_device().has(sycl::aspect::fp16))
    test<sycl::half>();
  return 0;
}

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After multiple offline discussions with @Naghasan, we have added a new rule in simplifyGEPInst to handle this case. SPIRVEmitIntrinsics calls simplifyGEPInst when handling GEP instructions to make sure this pattern is also simplified even if the frontend runs without optimizations.

%"class.sycl::_V1::detail::half_impl::half" = type { half }

; Function Attrs: mustprogress norecurse nounwind
define spir_kernel void @foo(ptr addrspace(3) noundef align 2 %_arg_temp, ptr addrspace(1) noundef align 2 %_arg_acc_a){
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we simplify the test, for example just by checking how alloca [0 x i32] is being lowered?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are now more test cases, but each of them is simpler.

Comment on lines 833 to 835
if (NumElems != 0 || !ST.isShader()) {
Register NumElementsVReg = buildConstantInt(
NumElems ? NumElems : 1, MIRBuilder, SpvTypeInt32, EmitIR);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this the correct solution?

That's interesting Q. I lean to say: yes. This replacement will legalize few GEPs that would be UB otherwise, but since they were already UB - such replacement should be fine.

Are runtime arrays allowed in OpenCL?
If not, should the compiler refuse to lower a runtime array to Kernel SPIR-V?

OpenCL allows unbounded arrays as kernel parameters and I believe GEP to unbound array kernel argument happens in the test provided by @maarquitos14 (though I'm having troubles to get a similar IR in my experiments).

Copy link
Contributor

@s-perron s-perron left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm okay with this change. The only potential problem I see is that changing the size of the type could have other unintended consequences. I don't know if it might be more robust to change the type in the FE. This will make sure that any optimizations that rely on knowing the layout and size of a variable will be correct.

@@ -0,0 +1,22 @@
; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s --check-prefix=CHECK-KERNEL
; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown %s -o - -filetype=obj | spirv-val %}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the shader test cases, I'm trying to get people to add the target environment to the call to spirv-val. That way, you can get more specific validation. Is that worth doing for opencl tests as well?

Suggested change
; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown %s -o - -filetype=obj | spirv-val %}
; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown %s -o - -filetype=obj | spirv-val --target-env opencl2.0 %}

Comment on lines 833 to 835
if (NumElems != 0 || !ST.isShader()) {
Register NumElementsVReg = buildConstantInt(
NumElems ? NumElems : 1, MIRBuilder, SpvTypeInt32, EmitIR);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't know OpenCL, but is it possible to have a zero sized array in a struct? Will making it an array of size 1 change the layout of the struct? Would it be better for the FE to change the type to an array of size 1 to avoid potential issue like that?

@maarquitos14 maarquitos14 requested a review from nikic as a code owner July 25, 2025 11:10
@llvmbot llvmbot added llvm:instcombine Covers the InstCombine, InstSimplify and AggressiveInstCombine passes llvm:analysis Includes value tracking, cost tables and constant folding llvm:transforms labels Jul 25, 2025
Copy link
Contributor

@nikic nikic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

InstructionSimplify is an analysis, it cannot modify IR.

@maarquitos14
Copy link
Contributor Author

I moved the GEP simplification to SPIRVEmitIntrinsics.

@github-actions
Copy link

github-actions bot commented Jul 29, 2025

✅ With the latest revision this PR passed the C/C++ code formatter.

Copy link
Contributor

@s-perron s-perron left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, I will be off for a while, so don't wait for me to merge. My only issue are the mixing of Vulkan and other addressing models. In general, we should not be using Addresses when targeting Vulkan. Don't add tests that expect that to work. Note that is different than creating a general shader, which can use Addresses.

@@ -1,4 +1,4 @@
; RUN: llc -O0 -mtriple=spirv32-unknown-unknown %s -o - | FileCheck %s --check-prefix=SPV
; RUN: llc -O0 -mtriple=spirv32-unknown-vulkan %s -o - | FileCheck %s --check-prefix=SPV
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mixing Physical addressing and shaders is fine as long as we are not targeting Vulkan.

Also Simple is deprecated. We might want to start phasing that out, but that is for another PR.

Comment on lines 1 to 2
; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv64-unknown-vulkan %s -o - | FileCheck %s
; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-vulkan %s -o - -filetype=obj | spirv-val %}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you are targeting vulkan, add -target-env vulkan1.3 (or some other version) to make sure we generate code that is valid for Vulkan.

@maarquitos14 maarquitos14 requested a review from Keenuts July 31, 2025 17:53
call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %var)
call void @llvm.memcpy.p0.p0.i64(ptr align 8 %var, ptr align 8 %_arg, i64 1, i1 false)
%KernelFunc = getelementptr inbounds i8, ptr %var, i64 0
%KernelFunc = getelementptr inbounds i8, ptr %var, i64 1
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had to change index from 0 to 1, because otherwise simplifyGEPInst was optimizing it out. Let me know if that works.

Copy link
Contributor

@Keenuts Keenuts left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 run lines to change, otherwise OK to move this forward

@MrSidims MrSidims merged commit cda4820 into llvm:main Aug 5, 2025
10 checks passed
@llvm-ci
Copy link

llvm-ci commented Aug 5, 2025

LLVM Buildbot has detected a new failure on builder sanitizer-aarch64-linux running on sanitizer-buildbot7 while building llvm at step 2 "annotate".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/51/builds/21027

Here is the relevant piece of the build log for the reference
Step 2 (annotate) failure: 'python ../sanitizer_buildbot/sanitizers/zorg/buildbot/builders/sanitizers/buildbot_selector.py' (failure)
...
[4731/5597] Linking CXX static library lib/libclangSema.a
[4732/5597] Linking CXX executable bin/llvm-link
[4733/5597] Linking CXX executable bin/llvm-cgdata
[4734/5597] Linking CXX static library lib/libclangParse.a
[4735/5597] Linking CXX static library lib/libclangSerialization.a
[4736/5597] Linking CXX executable bin/clang-format
[4737/5597] Linking CXX executable bin/lli-child-target
[4738/5597] Building AMDGPUGenDAGISel.inc...
[4739/5597] Linking CXX executable bin/llvm-extract
[4740/5597] Building CXX object lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o
FAILED: lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes CCACHE_SLOPPINESS=pch_defines,time_macros /usr/bin/ccache /home/b/sanitizer-aarch64-linux/build/llvm_build0/bin/clang++ -DEXPERIMENTAL_KEY_INSTRUCTIONS -DGTEST_HAS_RTTI=0 -DLLVM_EXPORTS -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D__SHORT_FILE__=\"SPIRVModuleAnalysis.cpp\" -I/home/b/sanitizer-aarch64-linux/build/build_default/lib/Target/SPIRV -I/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV -I/home/b/sanitizer-aarch64-linux/build/build_default/include -I/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -std=c++17 -fvisibility=hidden  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -MD -MT lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o -MF lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o.d -o lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o -c /home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp:1879:3: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough]
 1879 |   default:
      |   ^
/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp:1879:3: note: insert 'break;' to avoid fall-through
 1879 |   default:
      |   ^
      |   break; 
1 error generated.
[4741/5597] Building AMDGPUGenAsmMatcher.inc...
[4742/5597] Building AArch64GenSubtargetInfo.inc...
[4743/5597] Building CXX object lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVGlobalRegistry.cpp.o
[4744/5597] Building X86GenInstrInfo.inc...
[4745/5597] Building CXX object tools/clang/lib/Driver/CMakeFiles/obj.clangDriver.dir/ToolChains/HIPUtility.cpp.o
[4746/5597] Building RISCVGenInstrInfo.inc...
[4747/5597] Building RISCVGenDAGISel.inc...
[4748/5597] Building AMDGPUGenRegisterInfo.inc...
[4749/5597] Building RISCVGenGlobalISel.inc...
[4750/5597] Building CXX object lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVEmitIntrinsics.cpp.o
[4751/5597] Building AMDGPUGenRegisterBank.inc...
ninja: build stopped: subcommand failed.

How to reproduce locally: https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild


@@@STEP_FAILURE@@@

@@@STEP_FAILURE@@@

@@@STEP_FAILURE@@@
@@@BUILD_STEP test compiler-rt symbolizer@@@
ninja: Entering directory `build_default'
[1/597] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/GISel/AArch64CallLowering.cpp.o
[2/597] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/GISel/AArch64GlobalISelUtils.cpp.o
[3/597] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/GISel/AArch64InstructionSelector.cpp.o
[4/597] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/GISel/AArch64LegalizerInfo.cpp.o
[5/597] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/GISel/AArch64O0PreLegalizerCombiner.cpp.o
[6/597] Building CXX object lib/Target/AArch64/CMakeFiles/LLVMAArch64CodeGen.dir/GISel/AArch64PreLegalizerCombiner.cpp.o
Step 8 (build compiler-rt symbolizer) failure: build compiler-rt symbolizer (failure)
...
[4731/5597] Linking CXX static library lib/libclangSema.a
[4732/5597] Linking CXX executable bin/llvm-link
[4733/5597] Linking CXX executable bin/llvm-cgdata
[4734/5597] Linking CXX static library lib/libclangParse.a
[4735/5597] Linking CXX static library lib/libclangSerialization.a
[4736/5597] Linking CXX executable bin/clang-format
[4737/5597] Linking CXX executable bin/lli-child-target
[4738/5597] Building AMDGPUGenDAGISel.inc...
[4739/5597] Linking CXX executable bin/llvm-extract
[4740/5597] Building CXX object lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o
FAILED: lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes CCACHE_SLOPPINESS=pch_defines,time_macros /usr/bin/ccache /home/b/sanitizer-aarch64-linux/build/llvm_build0/bin/clang++ -DEXPERIMENTAL_KEY_INSTRUCTIONS -DGTEST_HAS_RTTI=0 -DLLVM_EXPORTS -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D__SHORT_FILE__=\"SPIRVModuleAnalysis.cpp\" -I/home/b/sanitizer-aarch64-linux/build/build_default/lib/Target/SPIRV -I/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV -I/home/b/sanitizer-aarch64-linux/build/build_default/include -I/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -std=c++17 -fvisibility=hidden  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -MD -MT lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o -MF lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o.d -o lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o -c /home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp:1879:3: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough]
 1879 |   default:
      |   ^
/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp:1879:3: note: insert 'break;' to avoid fall-through
 1879 |   default:
      |   ^
      |   break; 
1 error generated.
[4741/5597] Building AMDGPUGenAsmMatcher.inc...
[4742/5597] Building AArch64GenSubtargetInfo.inc...
[4743/5597] Building CXX object lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVGlobalRegistry.cpp.o
[4744/5597] Building X86GenInstrInfo.inc...
[4745/5597] Building CXX object tools/clang/lib/Driver/CMakeFiles/obj.clangDriver.dir/ToolChains/HIPUtility.cpp.o
[4746/5597] Building RISCVGenInstrInfo.inc...
[4747/5597] Building RISCVGenDAGISel.inc...
[4748/5597] Building AMDGPUGenRegisterInfo.inc...
[4749/5597] Building RISCVGenGlobalISel.inc...
[4750/5597] Building CXX object lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVEmitIntrinsics.cpp.o
[4751/5597] Building AMDGPUGenRegisterBank.inc...
ninja: build stopped: subcommand failed.

How to reproduce locally: https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild




Step 9 (test compiler-rt symbolizer) failure: test compiler-rt symbolizer (failure)
...
[480/597] Building CXX object tools/lld/ELF/CMakeFiles/lldELF.dir/Thunks.cpp.o
[481/597] Building CXX object tools/lld/ELF/CMakeFiles/lldELF.dir/Writer.cpp.o
[482/597] Building CXX object tools/lld/MachO/CMakeFiles/lldMachO.dir/Arch/ARM64.cpp.o
[483/597] Building CXX object tools/lld/MachO/CMakeFiles/lldMachO.dir/Arch/ARM64Common.cpp.o
[484/597] Linking CXX static library lib/libLLVMAMDGPUInfo.a
[485/597] Building CXX object tools/lld/MachO/CMakeFiles/lldMachO.dir/Arch/ARM64_32.cpp.o
[486/597] Building CXX object tools/lld/MachO/CMakeFiles/lldMachO.dir/Arch/X86_64.cpp.o
[487/597] Building CXX object tools/lld/MachO/CMakeFiles/lldMachO.dir/ConcatOutputSection.cpp.o
[488/597] Building CXX object tools/lld/MachO/CMakeFiles/lldMachO.dir/Driver.cpp.o
[489/597] Building CXX object lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o
FAILED: lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes CCACHE_SLOPPINESS=pch_defines,time_macros /usr/bin/ccache /home/b/sanitizer-aarch64-linux/build/llvm_build0/bin/clang++ -DEXPERIMENTAL_KEY_INSTRUCTIONS -DGTEST_HAS_RTTI=0 -DLLVM_EXPORTS -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D__SHORT_FILE__=\"SPIRVModuleAnalysis.cpp\" -I/home/b/sanitizer-aarch64-linux/build/build_default/lib/Target/SPIRV -I/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV -I/home/b/sanitizer-aarch64-linux/build/build_default/include -I/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -std=c++17 -fvisibility=hidden  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -MD -MT lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o -MF lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o.d -o lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o -c /home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp:1879:3: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough]
 1879 |   default:
      |   ^
/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp:1879:3: note: insert 'break;' to avoid fall-through
 1879 |   default:
      |   ^
      |   break; 
1 error generated.
[490/597] Linking CXX static library lib/libLLVMAMDGPUUtils.a
[491/597] Building CXX object tools/lld/MachO/CMakeFiles/lldMachO.dir/DriverUtils.cpp.o
[492/597] Building CXX object tools/lld/MachO/CMakeFiles/lldMachO.dir/Dwarf.cpp.o
[493/597] Building CXX object tools/lld/MachO/CMakeFiles/lldMachO.dir/EhFrame.cpp.o
[494/597] Building CXX object tools/lld/MachO/CMakeFiles/lldMachO.dir/ExportTrie.cpp.o
[495/597] Building CXX object tools/lld/MachO/CMakeFiles/lldMachO.dir/ICF.cpp.o
[496/597] Building CXX object tools/lld/MachO/CMakeFiles/lldMachO.dir/InputFiles.cpp.o
[497/597] Building CXX object tools/lld/MachO/CMakeFiles/lldMachO.dir/InputSection.cpp.o
[498/597] Building CXX object tools/lld/MachO/CMakeFiles/lldMachO.dir/LinkerOptimizationHints.cpp.o
[499/597] Building CXX object tools/lld/MachO/CMakeFiles/lldMachO.dir/LTO.cpp.o
[500/597] Building CXX object tools/lld/MachO/CMakeFiles/lldMachO.dir/MapFile.cpp.o
[501/597] Building CXX object tools/lld/MachO/CMakeFiles/lldMachO.dir/MarkLive.cpp.o
[502/597] Building CXX object tools/lld/MachO/CMakeFiles/lldMachO.dir/ObjC.cpp.o
[503/597] Building CXX object tools/lld/MachO/CMakeFiles/lldMachO.dir/OutputSection.cpp.o
[504/597] Building CXX object tools/lld/MachO/CMakeFiles/lldMachO.dir/OutputSegment.cpp.o
[505/597] Building CXX object tools/lld/MachO/CMakeFiles/lldMachO.dir/Relocations.cpp.o
[506/597] Building CXX object tools/lld/MachO/CMakeFiles/lldMachO.dir/BPSectionOrderer.cpp.o
[507/597] Building CXX object tools/lld/MachO/CMakeFiles/lldMachO.dir/SectionPriorities.cpp.o
[508/597] Building CXX object tools/lld/MachO/CMakeFiles/lldMachO.dir/Sections.cpp.o
[509/597] Building CXX object tools/lld/MachO/CMakeFiles/lldMachO.dir/SymbolTable.cpp.o
[510/597] Building CXX object tools/lld/MachO/CMakeFiles/lldMachO.dir/Symbols.cpp.o
[511/597] Building CXX object tools/lld/MachO/CMakeFiles/lldMachO.dir/SyntheticSections.cpp.o
[512/597] Building CXX object tools/lld/MachO/CMakeFiles/lldMachO.dir/Target.cpp.o
[513/597] Building CXX object tools/lld/MachO/CMakeFiles/lldMachO.dir/UnwindInfoSection.cpp.o
[514/597] Building CXX object tools/lld/MachO/CMakeFiles/lldMachO.dir/Writer.cpp.o
[515/597] Building CXX object tools/lld/MinGW/CMakeFiles/lldMinGW.dir/Driver.cpp.o
[516/597] Building CXX object tools/lld/wasm/CMakeFiles/lldWasm.dir/Driver.cpp.o
[517/597] Building CXX object tools/lld/wasm/CMakeFiles/lldWasm.dir/InputChunks.cpp.o
[518/597] Building CXX object tools/lld/wasm/CMakeFiles/lldWasm.dir/InputFiles.cpp.o
Step 10 (build compiler-rt debug) failure: build compiler-rt debug (failure)
...
[4947/5597] Building CXX object lib/Target/X86/MCTargetDesc/CMakeFiles/LLVMX86Desc.dir/X86WinCOFFStreamer.cpp.o
[4948/5597] Linking CXX static library lib/libLLVMX86Info.a
[4949/5597] Building CXX object tools/llvm-exegesis/lib/X86/CMakeFiles/LLVMExegesisX86.dir/Target.cpp.o
[4950/5597] Linking CXX static library lib/libLLVMX86Disassembler.a
[4951/5597] Linking CXX static library lib/libLLVMX86Desc.a
[4952/5597] Linking CXX static library lib/libLLVMX86TargetMCA.a
[4953/5597] Linking CXX static library lib/libLLVMX86AsmParser.a
[4954/5597] Linking CXX static library lib/libLLVMX86CodeGen.a
[4955/5597] Linking CXX static library lib/libLLVMExegesisX86.a
[4956/5597] Building CXX object lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o
FAILED: lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes CCACHE_SLOPPINESS=pch_defines,time_macros /usr/bin/ccache /home/b/sanitizer-aarch64-linux/build/llvm_build0/bin/clang++ -DEXPERIMENTAL_KEY_INSTRUCTIONS -DGTEST_HAS_RTTI=0 -DLLVM_EXPORTS -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D__SHORT_FILE__=\"SPIRVModuleAnalysis.cpp\" -I/home/b/sanitizer-aarch64-linux/build/build_default/lib/Target/SPIRV -I/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV -I/home/b/sanitizer-aarch64-linux/build/build_default/include -I/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -std=c++17 -fvisibility=hidden  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -MD -MT lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o -MF lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o.d -o lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o -c /home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp:1879:3: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough]
 1879 |   default:
      |   ^
/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp:1879:3: note: insert 'break;' to avoid fall-through
 1879 |   default:
      |   ^
      |   break; 
1 error generated.
[4957/5597] Building AMDGPUGenRegisterBank.inc...
[4958/5597] Building RISCVGenGlobalISel.inc...
[4959/5597] Building AMDGPUGenAsmMatcher.inc...
[4960/5597] Building RISCVGenDAGISel.inc...
[4961/5597] Building RISCVGenInstrInfo.inc...
ninja: build stopped: subcommand failed.

How to reproduce locally: https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild




Step 11 (test compiler-rt debug) failure: test compiler-rt debug (failure)
...
[59/410] Building CXX object lib/Target/RISCV/MCTargetDesc/CMakeFiles/LLVMRISCVDesc.dir/RISCVTargetStreamer.cpp.o
[60/410] Building CXX object lib/Target/RISCV/MCTargetDesc/CMakeFiles/LLVMRISCVDesc.dir/RISCVELFStreamer.cpp.o
[61/410] Building CXX object lib/Target/RISCV/TargetInfo/CMakeFiles/LLVMRISCVInfo.dir/RISCVTargetInfo.cpp.o
[62/410] Linking CXX static library lib/libLLVMRISCVInfo.a
[63/410] Linking CXX static library lib/libLLVMRISCVDesc.a
[64/410] Linking CXX static library lib/libLLVMRISCVDisassembler.a
[65/410] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/GISel/RISCVInstructionSelector.cpp.o
[66/410] Linking CXX static library lib/libLLVMRISCVAsmParser.a
[67/410] Linking CXX static library lib/libLLVMRISCVCodeGen.a
[68/410] Building CXX object lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o
FAILED: lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes CCACHE_SLOPPINESS=pch_defines,time_macros /usr/bin/ccache /home/b/sanitizer-aarch64-linux/build/llvm_build0/bin/clang++ -DEXPERIMENTAL_KEY_INSTRUCTIONS -DGTEST_HAS_RTTI=0 -DLLVM_EXPORTS -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D__SHORT_FILE__=\"SPIRVModuleAnalysis.cpp\" -I/home/b/sanitizer-aarch64-linux/build/build_default/lib/Target/SPIRV -I/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV -I/home/b/sanitizer-aarch64-linux/build/build_default/include -I/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -std=c++17 -fvisibility=hidden  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -MD -MT lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o -MF lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o.d -o lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o -c /home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp:1879:3: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough]
 1879 |   default:
      |   ^
/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp:1879:3: note: insert 'break;' to avoid fall-through
 1879 |   default:
      |   ^
      |   break; 
1 error generated.
[69/410] Building InstCombineTables.inc...
ninja: build stopped: subcommand failed.

How to reproduce locally: https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild




Step 12 (build compiler-rt tsan_debug) failure: build compiler-rt tsan_debug (failure)
...
[4917/5575] Linking CXX static library lib/libLLVMX86TargetMCA.a
[4918/5575] Linking CXX static library lib/libLLVMX86AsmParser.a
[4919/5575] Linking CXX static library lib/libLLVMX86CodeGen.a
[4920/5575] Linking CXX static library lib/libLLVMExegesisX86.a
[4921/5575] Building AMDGPUGenRegBankGICombiner.inc...
[4922/5575] Building AMDGPUGenPostLegalizeGICombiner.inc...
[4923/5575] Building AMDGPUGenPreLegalizeGICombiner.inc...
[4924/5575] Building AMDGPUGenSubtargetInfo.inc...
[4925/5575] Building AMDGPUGenDisassemblerTables.inc...
[4926/5575] Building CXX object lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o
FAILED: lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes CCACHE_SLOPPINESS=pch_defines,time_macros /usr/bin/ccache /home/b/sanitizer-aarch64-linux/build/llvm_build0/bin/clang++ -DEXPERIMENTAL_KEY_INSTRUCTIONS -DGTEST_HAS_RTTI=0 -DLLVM_EXPORTS -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D__SHORT_FILE__=\"SPIRVModuleAnalysis.cpp\" -I/home/b/sanitizer-aarch64-linux/build/build_default/lib/Target/SPIRV -I/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV -I/home/b/sanitizer-aarch64-linux/build/build_default/include -I/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -std=c++17 -fvisibility=hidden  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -MD -MT lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o -MF lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o.d -o lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o -c /home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp:1879:3: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough]
 1879 |   default:
      |   ^
/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp:1879:3: note: insert 'break;' to avoid fall-through
 1879 |   default:
      |   ^
      |   break; 
1 error generated.
[4927/5575] Building AMDGPUGenMCCodeEmitter.inc...
[4928/5575] Building RISCVGenInstrInfo.inc...
[4929/5575] Building AMDGPUGenSearchableTables.inc...
[4930/5575] Building RISCVGenGlobalISel.inc...
[4931/5575] Building AMDGPUGenCallingConv.inc...
[4932/5575] Building AMDGPUGenAsmWriter.inc...
[4933/5575] Building RISCVGenDAGISel.inc...
[4934/5575] Building AMDGPUGenGlobalISel.inc...
[4935/5575] Building AMDGPUGenDAGISel.inc...
[4936/5575] Building AMDGPUGenAsmMatcher.inc...
[4937/5575] Building AMDGPUGenInstrInfo.inc...
[4938/5575] Building AMDGPUGenRegisterBank.inc...
[4939/5575] Building AMDGPUGenRegisterInfo.inc...
ninja: build stopped: subcommand failed.

How to reproduce locally: https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild




Step 13 (build compiler-rt default) failure: build compiler-rt default (failure)
...
[4941/5597] Linking CXX static library lib/libLLVMX86CodeGen.a
[4942/5597] Linking CXX static library lib/libLLVMExegesisX86.a
[4943/5597] Building AMDGPUGenPreLegalizeGICombiner.inc...
[4944/5597] Building AMDGPUGenRegBankGICombiner.inc...
[4945/5597] Building AMDGPUGenPostLegalizeGICombiner.inc...
[4946/5597] Building AMDGPUGenSubtargetInfo.inc...
[4947/5597] Building AMDGPUGenMCCodeEmitter.inc...
[4948/5597] Building RISCVGenInstrInfo.inc...
[4949/5597] Building AMDGPUGenDisassemblerTables.inc...
[4950/5597] Building CXX object lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o
FAILED: lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes CCACHE_SLOPPINESS=pch_defines,time_macros /usr/bin/ccache /home/b/sanitizer-aarch64-linux/build/llvm_build0/bin/clang++ -DEXPERIMENTAL_KEY_INSTRUCTIONS -DGTEST_HAS_RTTI=0 -DLLVM_EXPORTS -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D__SHORT_FILE__=\"SPIRVModuleAnalysis.cpp\" -I/home/b/sanitizer-aarch64-linux/build/build_default/lib/Target/SPIRV -I/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV -I/home/b/sanitizer-aarch64-linux/build/build_default/include -I/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -std=c++17 -fvisibility=hidden  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -MD -MT lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o -MF lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o.d -o lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o -c /home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp:1879:3: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough]
 1879 |   default:
      |   ^
/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp:1879:3: note: insert 'break;' to avoid fall-through
 1879 |   default:
      |   ^
      |   break; 
1 error generated.
[4951/5597] Building AMDGPUGenSearchableTables.inc...
[4952/5597] Building AMDGPUGenCallingConv.inc...
[4953/5597] Building RISCVGenGlobalISel.inc...
[4954/5597] Building AMDGPUGenAsmWriter.inc...
[4955/5597] Building RISCVGenDAGISel.inc...
[4956/5597] Building AMDGPUGenGlobalISel.inc...
[4957/5597] Building AMDGPUGenAsmMatcher.inc...
[4958/5597] Building AMDGPUGenDAGISel.inc...
[4959/5597] Building AMDGPUGenInstrInfo.inc...
[4960/5597] Building AMDGPUGenRegisterBank.inc...
[4961/5597] Building AMDGPUGenRegisterInfo.inc...
ninja: build stopped: subcommand failed.

How to reproduce locally: https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild




Step 14 (test compiler-rt default) failure: test compiler-rt default (failure)
...
[59/410] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/GISel/RISCVPostLegalizerCombiner.cpp.o
[60/410] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/GISel/RISCVLegalizerInfo.cpp.o
[61/410] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/GISel/RISCVO0PreLegalizerCombiner.cpp.o
[62/410] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/GISel/RISCVPreLegalizerCombiner.cpp.o
[63/410] Linking CXX static library lib/libLLVMRISCVDisassembler.a
[64/410] Linking CXX static library lib/libLLVMRISCVAsmParser.a
[65/410] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/RISCVISelDAGToDAG.cpp.o
[66/410] Building CXX object lib/Target/RISCV/CMakeFiles/LLVMRISCVCodeGen.dir/GISel/RISCVInstructionSelector.cpp.o
[67/410] Linking CXX static library lib/libLLVMRISCVCodeGen.a
[68/410] Building CXX object lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o
FAILED: lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes CCACHE_SLOPPINESS=pch_defines,time_macros /usr/bin/ccache /home/b/sanitizer-aarch64-linux/build/llvm_build0/bin/clang++ -DEXPERIMENTAL_KEY_INSTRUCTIONS -DGTEST_HAS_RTTI=0 -DLLVM_EXPORTS -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D__SHORT_FILE__=\"SPIRVModuleAnalysis.cpp\" -I/home/b/sanitizer-aarch64-linux/build/build_default/lib/Target/SPIRV -I/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV -I/home/b/sanitizer-aarch64-linux/build/build_default/include -I/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -std=c++17 -fvisibility=hidden  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -MD -MT lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o -MF lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o.d -o lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o -c /home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp:1879:3: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough]
 1879 |   default:
      |   ^
/home/b/sanitizer-aarch64-linux/build/llvm-project/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp:1879:3: note: insert 'break;' to avoid fall-through
 1879 |   default:
      |   ^
      |   break; 
1 error generated.
[69/410] Building InstCombineTables.inc...
ninja: build stopped: subcommand failed.

How to reproduce locally: https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild




Step 15 (build standalone compiler-rt) failure: build standalone compiler-rt (failure)
...
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
-- The ASM compiler identification is unknown
-- Didn't find assembler
CMake Error at CMakeLists.txt:22 (project):
  The CMAKE_C_COMPILER:

    /home/b/sanitizer-aarch64-linux/build/build_default/bin/clang

  is not a full path to an existing compiler tool.

  Tell CMake where to find the compiler by setting either the environment
  variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
  the compiler, or to the compiler name if it is in the PATH.


CMake Error at CMakeLists.txt:22 (project):
  The CMAKE_CXX_COMPILER:

    /home/b/sanitizer-aarch64-linux/build/build_default/bin/clang++

  is not a full path to an existing compiler tool.

  Tell CMake where to find the compiler by setting either the environment
  variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
  to the compiler, or to the compiler name if it is in the PATH.


CMake Error at CMakeLists.txt:22 (project):
  No CMAKE_ASM_COMPILER could be found.

  Tell CMake where to find the compiler by setting either the environment
  variable "ASM" or the CMake cache entry CMAKE_ASM_COMPILER to the full path
  to the compiler, or to the compiler name if it is in the PATH.
-- Warning: Did not find file Compiler/-ASM
-- Configuring incomplete, errors occurred!

How to reproduce locally: https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild




ninja: Entering directory `compiler_rt_build'
ninja: error: loading 'build.ninja': No such file or directory

How to reproduce locally: https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild




Step 16 (test standalone compiler-rt) failure: test standalone compiler-rt (failure)
@@@BUILD_STEP test standalone compiler-rt@@@
ninja: Entering directory `compiler_rt_build'
ninja: error: loading 'build.ninja': No such file or directory

How to reproduce locally: https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild





maarquitos14 pushed a commit to maarquitos14/llvm-project that referenced this pull request Aug 5, 2025
@llvm-ci
Copy link

llvm-ci commented Aug 5, 2025

LLVM Buildbot has detected a new failure on builder sanitizer-x86_64-linux-android running on sanitizer-buildbot-android while building llvm at step 2 "annotate".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/186/builds/11332

Here is the relevant piece of the build log for the reference
Step 2 (annotate) failure: 'python ../sanitizer_buildbot/sanitizers/zorg/buildbot/builders/sanitizers/buildbot_selector.py' (failure)
...
[3582/5577] Copying clang's cuda_wrappers/bits/c++config.h...
[3583/5577] Copying clang's cuda_wrappers/bits/basic_string.h...
[3584/5577] Copying clang's cuda_wrappers/bits/shared_ptr_base.h...
[3585/5577] Copying clang's ppc_wrappers/xmmintrin.h...
[3586/5577] Copying clang's ppc_wrappers/emmintrin.h...
[3587/5577] Copying clang's cuda_wrappers/bits/basic_string.tcc...
[3588/5577] Copying clang's ppc_wrappers/mmintrin.h...
[3589/5577] Copying clang's cuda_wrappers/__utility/declval.h...
[3590/5577] Copying clang's ppc_wrappers/pmmintrin.h...
[3591/5577] Building CXX object lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o
FAILED: lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes CCACHE_SLOPPINESS=pch_defines,time_macros /usr/bin/ccache /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm_build0/bin/clang++ -DEXPERIMENTAL_KEY_INSTRUCTIONS -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D__SHORT_FILE__=\"SPIRVModuleAnalysis.cpp\" -I/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm_build64/lib/Target/SPIRV -I/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/llvm/lib/Target/SPIRV -I/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm_build64/include -I/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -std=c++17 -fvisibility=hidden  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -MD -MT lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o -MF lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o.d -o lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o -c /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp:1879:3: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough]
 1879 |   default:
      |   ^
/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp:1879:3: note: insert 'break;' to avoid fall-through
 1879 |   default:
      |   ^
      |   break; 
1 error generated.
[3592/5577] Copying clang's ppc_wrappers/mm_malloc.h...
[3593/5577] Copying clang's ppc_wrappers/nmmintrin.h...
[3594/5577] Copying clang's ppc_wrappers/tmmintrin.h...
[3595/5577] Copying clang's ppc_wrappers/smmintrin.h...
[3596/5577] Copying clang's ppc_wrappers/bmiintrin.h...
[3597/5577] Copying clang's ppc_wrappers/bmi2intrin.h...
[3598/5577] Copying clang's ppc_wrappers/immintrin.h...
[3599/5577] Copying clang's ppc_wrappers/x86intrin.h...
[3600/5577] Building CXX object lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVGlobalRegistry.cpp.o
[3601/5577] Building X86GenSubtargetInfo.inc...
[3602/5577] Building X86GenInstrInfo.inc...
[3603/5577] Building InstCombineTables.inc...
[3604/5577] Building CXX object lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVEmitIntrinsics.cpp.o
ninja: build stopped: subcommand failed.

How to reproduce locally: https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild


@@@STEP_FAILURE@@@

@@@STEP_FAILURE@@@

@@@STEP_FAILURE@@@
Step 8 (bootstrap clang) failure: bootstrap clang (failure)
...
[3582/5577] Copying clang's cuda_wrappers/bits/c++config.h...
[3583/5577] Copying clang's cuda_wrappers/bits/basic_string.h...
[3584/5577] Copying clang's cuda_wrappers/bits/shared_ptr_base.h...
[3585/5577] Copying clang's ppc_wrappers/xmmintrin.h...
[3586/5577] Copying clang's ppc_wrappers/emmintrin.h...
[3587/5577] Copying clang's cuda_wrappers/bits/basic_string.tcc...
[3588/5577] Copying clang's ppc_wrappers/mmintrin.h...
[3589/5577] Copying clang's cuda_wrappers/__utility/declval.h...
[3590/5577] Copying clang's ppc_wrappers/pmmintrin.h...
[3591/5577] Building CXX object lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o
FAILED: lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o 
CCACHE_CPP2=yes CCACHE_HASHDIR=yes CCACHE_SLOPPINESS=pch_defines,time_macros /usr/bin/ccache /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm_build0/bin/clang++ -DEXPERIMENTAL_KEY_INSTRUCTIONS -DGTEST_HAS_RTTI=0 -D_DEBUG -D_GLIBCXX_ASSERTIONS -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D__SHORT_FILE__=\"SPIRVModuleAnalysis.cpp\" -I/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm_build64/lib/Target/SPIRV -I/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/llvm/lib/Target/SPIRV -I/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm_build64/include -I/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/llvm/include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wc++98-compat-extra-semi -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -O3 -DNDEBUG -std=c++17 -fvisibility=hidden  -fno-exceptions -funwind-tables -fno-rtti -UNDEBUG -MD -MT lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o -MF lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o.d -o lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVModuleAnalysis.cpp.o -c /var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp
/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp:1879:3: error: unannotated fall-through between switch labels [-Werror,-Wimplicit-fallthrough]
 1879 |   default:
      |   ^
/var/lib/buildbot/sanitizer-buildbot6/sanitizer-x86_64-linux-android/build/llvm-project/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp:1879:3: note: insert 'break;' to avoid fall-through
 1879 |   default:
      |   ^
      |   break; 
1 error generated.
[3592/5577] Copying clang's ppc_wrappers/mm_malloc.h...
[3593/5577] Copying clang's ppc_wrappers/nmmintrin.h...
[3594/5577] Copying clang's ppc_wrappers/tmmintrin.h...
[3595/5577] Copying clang's ppc_wrappers/smmintrin.h...
[3596/5577] Copying clang's ppc_wrappers/bmiintrin.h...
[3597/5577] Copying clang's ppc_wrappers/bmi2intrin.h...
[3598/5577] Copying clang's ppc_wrappers/immintrin.h...
[3599/5577] Copying clang's ppc_wrappers/x86intrin.h...
[3600/5577] Building CXX object lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVGlobalRegistry.cpp.o
[3601/5577] Building X86GenSubtargetInfo.inc...
[3602/5577] Building X86GenInstrInfo.inc...
[3603/5577] Building InstCombineTables.inc...
[3604/5577] Building CXX object lib/Target/SPIRV/CMakeFiles/LLVMSPIRVCodeGen.dir/SPIRVEmitIntrinsics.cpp.o
ninja: build stopped: subcommand failed.

How to reproduce locally: https://github.com/google/sanitizers/wiki/SanitizerBotReproduceBuild




program finished with exit code 2
elapsedTime=157.588592

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend:SPIR-V llvm:analysis Includes value tracking, cost tables and constant folding llvm:instcombine Covers the InstCombine, InstSimplify and AggressiveInstCombine passes llvm:transforms

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants