[llvm] [Exegesis][RISCV] Add initial RVV support (PR #128767)

Min-Yih Hsu via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 28 15:00:20 PST 2025


mshockwave 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 6 "test-build-unified-tree-check-all".
> 
> Full details are available at: https://lab.llvm.org/buildbot/#/builders/187/builds/4579
> 
> Here is the relevant piece of the build log for the reference
> ```
> Step 6 (test-build-unified-tree-check-all) failure: test (failure)
> ******************** TEST 'LLVM :: tools/llvm-exegesis/RISCV/rvv/explicit-sew.test' FAILED ********************
> Exit Code: 134
> 
> Command Output (stderr):
> --
> RUN: at line 1: /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llvm-exegesis -mtriple=riscv64 -mcpu=sifive-x280 -benchmark-phase=assemble-measured-code --mode=latency --opcode-name=PseudoVFWREDUSUM_VS_M1_E32     --max-configs-per-opcode=1000 --min-instructions=100 | /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/FileCheck /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/test/tools/llvm-exegesis/RISCV/rvv/explicit-sew.test
> + /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llvm-exegesis -mtriple=riscv64 -mcpu=sifive-x280 -benchmark-phase=assemble-measured-code --mode=latency --opcode-name=PseudoVFWREDUSUM_VS_M1_E32 --max-configs-per-opcode=1000 --min-instructions=100
> + /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/FileCheck /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/test/tools/llvm-exegesis/RISCV/rvv/explicit-sew.test
> llvm-exegesis: /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/include/llvm/CodeGen/Register.h:83: unsigned int llvm::Register::virtRegIndex() const: Assertion `isVirtual() && "Not a virtual register"' failed.
> PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
> Stack dump:
> 0.	Program arguments: /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llvm-exegesis -mtriple=riscv64 -mcpu=sifive-x280 -benchmark-phase=assemble-measured-code --mode=latency --opcode-name=PseudoVFWREDUSUM_VS_M1_E32 --max-configs-per-opcode=1000 --min-instructions=100
> 1.	Running pass 'Function Pass Manager' on module 'ExegesisInfoTest'.
> 2.	Running pass 'Verify generated machine code' on function '@foo'
>  #0 0x000055aaa724f03a llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/lib/Support/Unix/Signals.inc:804:22
>  #1 0x000055aaa724f45b PrintStackTraceSignalHandler(void*) /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/lib/Support/Unix/Signals.inc:880:1
>  #2 0x000055aaa724c889 llvm::sys::RunSignalHandlers() /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/lib/Support/Signals.cpp:105:20
>  #3 0x000055aaa724e8a9 SignalHandler(int, siginfo_t*, void*) /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/lib/Support/Unix/Signals.inc:418:13
>  #4 0x00007f252877c520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
>  #5 0x00007f25287d09fc pthread_kill (/lib/x86_64-linux-gnu/libc.so.6+0x969fc)
>  #6 0x00007f252877c476 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x42476)
>  #7 0x00007f25287627f3 abort (/lib/x86_64-linux-gnu/libc.so.6+0x287f3)
>  #8 0x00007f252876271b (/lib/x86_64-linux-gnu/libc.so.6+0x2871b)
>  #9 0x00007f2528773e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
> #10 0x000055aaa7318e9a llvm::Register::virtRegIndex() const /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/include/llvm/CodeGen/Register.h:84:12
> #11 0x000055aaa731a4b7 llvm::VirtReg2IndexFunctor::operator()(llvm::Register) const /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/include/llvm/CodeGen/TargetRegisterInfo.h:1404:72
> #12 0x000055aaa731c657 llvm::IndexedMap<std::pair<llvm::PointerUnion<llvm::TargetRegisterClass const*, llvm::RegisterBank const*>, llvm::MachineOperand*>, llvm::VirtReg2IndexFunctor>::operator[](llvm::Register) const /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/include/llvm/ADT/IndexedMap.h:53:7
> #13 0x000055aaa731adbc llvm::MachineRegisterInfo::getRegClass(llvm::Register) const /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/include/llvm/CodeGen/MachineRegisterInfo.h:656:5
> #14 0x000055aaa8629d6e llvm::RISCVInstrInfo::verifyInstruction(llvm::MachineInstr const&, llvm::StringRef&) const /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/lib/Target/RISCV/RISCVInstrInfo.cpp:2617:0
> #15 0x000055aaa9b4e50b (anonymous namespace)::MachineVerifier::visitMachineInstrBefore(llvm::MachineInstr const*) /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/lib/CodeGen/MachineVerifier.cpp:2361:7
> #16 0x000055aaa9b44965 (anonymous namespace)::MachineVerifier::verify(llvm::MachineFunction const&) /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/lib/CodeGen/MachineVerifier.cpp:554:21
> #17 0x000055aaa9b43c48 (anonymous namespace)::MachineVerifierLegacyPass::runOnMachineFunction(llvm::MachineFunction&) /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/lib/CodeGen/MachineVerifier.cpp:390:5
> #18 0x000055aaa9a055b6 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/lib/CodeGen/MachineFunctionPass.cpp:108:30
> #19 0x000055aaab1dd1b2 llvm::FPPassManager::runOnFunction(llvm::Function&) /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1406:20
> #20 0x000055aaab1dd562 llvm::FPPassManager::runOnModule(llvm::Module&) /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1452:13
> #21 0x000055aaab1dd9e3 (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1521:20
> #22 0x000055aaab1d88a3 llvm::legacy::PassManagerImpl::run(llvm::Module&) /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:539:13
> #23 0x000055aaab1de32d llvm::legacy::PassManager::run(llvm::Module&) /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/lib/IR/LegacyPassManager.cpp:1649:1
> #24 0x000055aaa89ef37c llvm::exegesis::assembleToStream(llvm::exegesis::ExegesisTarget const&, std::unique_ptr<llvm::TargetMachine, std::default_delete<llvm::TargetMachine>>, llvm::ArrayRef<llvm::MCRegister>, std::function<void (llvm::exegesis::FunctionFiller&)> const&, llvm::raw_pwrite_stream&, llvm::exegesis::BenchmarkKey const&, bool) /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/tools/llvm-exegesis/lib/Assembler.cpp:339:24
> #25 0x000055aaa896657d llvm::exegesis::BenchmarkRunner::assembleSnippet(llvm::exegesis::BenchmarkCode const&, llvm::exegesis::SnippetRepetitor const&, unsigned int, unsigned int, bool) const /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp:604:49
> #26 0x000055aaa89668c3 llvm::exegesis::BenchmarkRunner::getRunnableConfiguration(llvm::exegesis::BenchmarkCode const&, unsigned int, unsigned int, llvm::exegesis::SnippetRepetitor const&) const /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/tools/llvm-exegesis/lib/BenchmarkRunner.cpp:639:75
> #27 0x000055aaa6f9fae0 llvm::exegesis::runBenchmarkConfigurations(llvm::exegesis::LLVMState const&, llvm::ArrayRef<llvm::exegesis::BenchmarkCode>, llvm::ArrayRef<std::unique_ptr<llvm::exegesis::SnippetRepetitor const, std::default_delete<llvm::exegesis::SnippetRepetitor const>>>, llvm::exegesis::BenchmarkRunner const&) /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/tools/llvm-exegesis/llvm-exegesis.cpp:422:66
> #28 0x000055aaa6fa0b24 llvm::exegesis::benchmarkMain() /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/tools/llvm-exegesis/llvm-exegesis.cpp:581:20
> #29 0x000055aaa6fa18c3 main /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/tools/llvm-exegesis/llvm-exegesis.cpp:736:10
> #30 0x00007f2528763d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
> #31 0x00007f2528763e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
> #32 0x000055aaa6f9eaa5 _start (/home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llvm-exegesis+0x5c1aa5)
> /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/test/tools/llvm-exegesis/RISCV/rvv/Output/explicit-sew.test.script: line 1: 3677315 Aborted                 (core dumped) /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/llvm-exegesis -mtriple=riscv64 -mcpu=sifive-x280 -benchmark-phase=assemble-measured-code --mode=latency --opcode-name=PseudoVFWREDUSUM_VS_M1_E32 --max-configs-per-opcode=1000 --min-instructions=100
>      3677318 Done                    | /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/build/bin/FileCheck /home/buildbot/worker/as-builder-4/ramdisk/expensive-checks/llvm-project/llvm/test/tools/llvm-exegesis/RISCV/rvv/explicit-sew.test
> 
> ...
> ```

Fixed by b697bf3c0176e0f9c2f1ab5d39c797469f9037bd

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


More information about the llvm-commits mailing list