Skip to content

rust: rustc SIGSEGV in LLVM LoopVectorize when compiling image-webp on RVA23 #938

Description

@misaka00251

Package name

rust

openRuyi version

1.95.0

Describe the bug

When building agg 1.9.0 for the RVA23 RISC-V target, rustc crashes with SIGSEGV while compiling image-webp 0.2.4 in release mode.

The backtrace shows that the crash occurs inside LLVM 22's Loop Vectorizer/VPlan implementation, beginning at llvm::VPTransformState::get() and continuing through llvm::LoopVectorizePass.

This is an internal compiler crash rather than a normal Rust compilation error.

The affected toolchain packages are:

  • rust-1.95.0-11.3.or
  • llvm22-libs-22.1.8-14.2.or

The build target is riscv64a23-unknown-linux-gnu.

Steps to reproduce

  1. Build agg 1.9.0 in the openRuyi RVA23 repository on riscv64.
  2. Use the openRuyi Rust toolchain:
  • rust-1.95.0-11.3.or
  • llvm22-libs-22.1.8-14.2.or
  1. Run the release build: cargo build --release --offline
  2. Wait until Cargo starts compiling image-webp 0.2.4.
  3. rustc terminates with SIGSEGV inside LLVM's Loop Vectorizer..

Expected behaviour

rustc should compile image-webp successfully without crashing.

Screenshots

No response

Relevant log output

Compiling image-webp v0.2.4
error: rustc interrupted by SIGSEGV, printing backtrace

/lib/librustc_driver-c1ac0c09f9b8919f.so(+0x93568e) [0x7fffb5d3568e]
linux-vdso.so.1(__vdso_rt_sigreturn+0x0) [0x7fffba3b75e0]
/lib64/lp64d/libLLVM.so.22.1(_ZN4llvm16VPTransformState3getEPKNS_7VPValueERKNS_6VPLaneE+0x1ce) [0x7fffafbe5fa6]
/lib64/lp64d/libLLVM.so.22.1(_ZN4llvm16VPTransformState3getEPKNS_7VPValueEb+0x98) [0x7fffafbe623e]
/lib64/lp64d/libLLVM.so.22.1(_ZN4llvm13VPInstruction8generateERNS_16VPTransformStateE+0xbbc) [0x7fffafc215fe]
/lib64/lp64d/libLLVM.so.22.1(_ZN4llvm13VPInstruction7executeERNS_16VPTransformStateE+0x5a) [0x7fffafc225a2]
/lib64/lp64d/libLLVM.so.22.1(_ZN4llvm12VPBasicBlock14executeRecipesEPNS_16VPTransformStateEPNS_10BasicBlockE+0x76) [0x7fffafbe336c]
/lib64/lp64d/libLLVM.so.22.1(_ZN4llvm12VPBasicBlock7executeEPNS_16VPTransformStateE+0x1b4) [0x7fffafbe72fc]
/lib64/lp64d/libLLVM.so.22.1(_ZN4llvm5VPlan7executeEPNS_16VPTransformStateE+0x17c) [0x7fffafbf2bce]
/lib64/lp64d/libLLVM.so.22.1(_ZN4llvm24LoopVectorizationPlanner11executePlanENS_12ElementCountEjRNS_5VPlanERNS_19InnerLoopVectorizerEPNS_13DominatorTreeEb+0x3c4) [0x7fffafac57c2]
/lib64/lp64d/libLLVM.so.22.1(_ZN4llvm17LoopVectorizePass11processLoopEPNS_4LoopE+0x18d6) [0x7fffafad634a]
/lib64/lp64d/libLLVM.so.22.1(_ZN4llvm17LoopVectorizePass7runImplERNS_8FunctionE+0x104) [0x7fffafad8ee0]
/lib64/lp64d/libLLVM.so.22.1(_ZN4llvm17LoopVectorizePass3runERNS_8FunctionERNS_15AnalysisManagerIS1_JEEE+0x27e) [0x7fffafad9204]
/lib64/lp64d/libLLVM.so.22.1(+0x3a31686) [0x7fffb1631686]
/lib64/lp64d/libLLVM.so.22.1(_ZN4llvm11PassManagerINS_8FunctionENS_15AnalysisManagerIS1_JEEEJEE3runERS1_RS3_+0x126) [0x7fffae8706bc]
/lib64/lp64d/libLLVM.so.22.1(+0x2adbf74) [0x7fffb06dbf74]
/lib64/lp64d/libLLVM.so.22.1(_ZN4llvm27ModuleToFunctionPassAdaptor3runERNS_6ModuleERNS_15AnalysisManagerIS1_JEEE+0x106) [0x7fffae86f992]
/lib64/lp64d/libLLVM.so.22.1(+0x2add90e) [0x7fffb06dd90e]
/lib64/lp64d/libLLVM.so.22.1(_ZN4llvm11PassManagerINS_6ModuleENS_15AnalysisManagerIS1_JEEEJEE3runERS1_RS3_+0x118) [0x7fffae86f6c0]
/lib/librustc_driver-c1ac0c09f9b8919f.so(+0xd0bad6) [0x7fffb610bad6]
/lib/librustc_driver-c1ac0c09f9b8919f.so(+0xc31020) [0x7fffb6031020]
/lib/librustc_driver-c1ac0c09f9b8919f.so(+0xc03864) [0x7fffb6003864]
/lib/librustc_driver-c1ac0c09f9b8919f.so(+0xc0405c) [0x7fffb600405c]
/lib/librustc_driver-c1ac0c09f9b8919f.so(+0xc29cfa) [0x7fffb6029cfa]
/lib/librustc_driver-c1ac0c09f9b8919f.so(_RINvNtNtCs4I13lVSxsmj_3std3sys9backtrace28___rust_begin_short_backtraceNCINvXs0_Cs3tnmAXQRrzt_18rustc_codegen_llvmNtB1g_18LlvmCodegenBackendNtNtNtCsfuWdd60orje_17rustc_codegen_ssa6traits7backend19ExtraBackendMethods18spawn_named_threadNCINvNtNtB2k_4back5write19spawn_thin_lto_workB1O_E0uE0uEB1g_+0x112) [0x7fffb600eaa6]
/lib/librustc_driver-c1ac0c09f9b8919f.so(+0xc49f7c) [0x7fffb6049f7c]
/lib/librustc_driver-c1ac0c09f9b8919f.so(+0x3981dbc) [0x7fffb8d81dbc]
/lib64/lp64d/libc.so.6(+0x7aaa8) [0x7fffb52f1aa8]
/lib64/lp64d/libc.so.6(+0xcf1f0) [0x7fffb53461f0]

note: we would appreciate a report at https://github.com/rust-lang/rust
help: you can increase rustc's stack size by setting RUST_MIN_STACK=16777216
note: backtrace dumped due to SIGSEGV! resuming signal
error: could not compile `image-webp` (lib)

Additional context

_log.txt

I assert that this issue is relevant for openRuyi

  • I assert that this is a bug and not a support request.
  • I assert that this is not a duplicate of an existing issue.
  • I assert that I have read the openRuyi Code of Conduct and agree to abide by it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Target: RollingTargeting rolling/current branch.Type: BugIssues related to incorrect behavior or failures that need fixing.

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions