[llvm] [WebAssembly] Implement addrspacecast to funcref (PR #166820)

LLVM Continuous Integration via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 4 16:48:41 PST 2025


llvm-ci wrote:

LLVM Buildbot has detected a new failure on builder `llvm-clang-x86_64-expensive-checks-ubuntu` running on `as-builder-4` while building `llvm` at step 7 "test-check-all".

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

<details>
<summary>Here is the relevant piece of the build log for the reference</summary>

```
Step 7 (test-check-all) failure: Test just built components: check-all completed (failure)
******************** TEST 'LLVM :: CodeGen/WebAssembly/addrspacecast-funcref.ll' FAILED ********************
Exit Code: 2

Command Output (stdout):
--
# RUN: at line 2
/home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llc -mtriple=wasm32-unknown-unknown -mattr=+reference-types < /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/test/CodeGen/WebAssembly/addrspacecast-funcref.ll | /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/FileCheck -check-prefixes=CHECK,WASM32 /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/test/CodeGen/WebAssembly/addrspacecast-funcref.ll
# executed command: /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llc -mtriple=wasm32-unknown-unknown -mattr=+reference-types
# executed command: /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/FileCheck -check-prefixes=CHECK,WASM32 /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/test/CodeGen/WebAssembly/addrspacecast-funcref.ll
# RUN: at line 3
/home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llc -mtriple=wasm64-unknown-unknown -mattr=+reference-types < /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/test/CodeGen/WebAssembly/addrspacecast-funcref.ll | /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/FileCheck -check-prefixes=CHECK,WASM64 /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/test/CodeGen/WebAssembly/addrspacecast-funcref.ll
# executed command: /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llc -mtriple=wasm64-unknown-unknown -mattr=+reference-types
# .---command stderr------------
# | 
# | # After Post-RA pseudo instruction expansion pass
# | # Machine code for function cast_const_not_funcptr: NoPHIs, TracksLiveness, TiedOpsRewritten
# | Function Live Ins: $arguments
# | 
# | bb.0 (%ir-block.0):
# |   liveins: $arguments
# |   %0:i64 = CONST_I64 @global_var, implicit-def dead $arguments
# |   %2:i32 = COPY_I32 %0:i64, implicit-def $arguments
# |   %1:funcref = TABLE_GET_FUNCREF <mcsymbol __indirect_function_table>, %2:i32, implicit-def dead $arguments
# |   RETURN %1:funcref, implicit-def dead $arguments
# | 
# | # End machine code for function cast_const_not_funcptr.
# | 
# | *** Bad machine code: Illegal virtual register for instruction ***
# | - function:    cast_const_not_funcptr
# | - basic block: %bb.0  (0x5b54c32d4820)
# | - instruction: %2:i32 = COPY_I32 %0:i64, implicit-def $arguments
# | - operand 1:   %0:i64
# | Expected a I32 register, but got a I64 register
# | LLVM ERROR: Found 1 machine code errors.
# | PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace and instructions to reproduce the bug.
# | Stack dump:
# | 0.	Program arguments: /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llc -mtriple=wasm64-unknown-unknown -mattr=+reference-types
# | 1.	Running pass 'Function Pass Manager' on module '<stdin>'.
# | 2.	Running pass 'Verify generated machine code' on function '@cast_const_not_funcptr'
# |  #0 0x00005b54a8ca1488 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llc+0x80b8488)
# |  #1 0x00005b54a8c9eb95 llvm::sys::RunSignalHandlers() (/home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llc+0x80b5b95)
# |  #2 0x00005b54a8ca2251 SignalHandler(int, siginfo_t*, void*) Signals.cpp:0:0
# |  #3 0x0000760d6bc45330 (/lib/x86_64-linux-gnu/libc.so.6+0x45330)
# |  #4 0x0000760d6bc9eb2c pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x9eb2c)
# |  #5 0x0000760d6bc4527e raise (/lib/x86_64-linux-gnu/libc.so.6+0x4527e)
# |  #6 0x0000760d6bc288ff abort (/lib/x86_64-linux-gnu/libc.so.6+0x288ff)
# |  #7 0x00005b54a8c04ff5 llvm::report_fatal_error(llvm::Twine const&, bool) (/home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llc+0x801bff5)
# |  #8 0x00005b54a7dc45fb (/home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llc+0x71db5fb)
# |  #9 0x00005b54a7dc55db (anonymous namespace)::MachineVerifierLegacyPass::runOnMachineFunction(llvm::MachineFunction&) MachineVerifier.cpp:0:0
# | #10 0x00005b54a7ca0d43 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llc+0x70b7d43)
...

```

</details>

https://github.com/llvm/llvm-project/pull/166820


More information about the llvm-commits mailing list