Skip to content

Support unfiltered codegen regressions with each individual LLVM backend #490

Description

@LunaStev

Remaining regression-harness limitation

#484/#486 repair the complete core64 suite and the LoongArch-specific tests. The broader unfiltered single-backend codegen harness still contains tests that select disabled targets or implicitly use the host target.

On #486 head 6fb6ed7, this command reproduces the remaining limitation:

cargo test --locked --no-default-features --features llvm-target-loongarch --test codegen_regressions --jobs 2

The local audit reported 13 passed / 44 failed. For example, std_net_compiles_for_every_supported_socket_abi still includes X86/AArch64/RISCV entries, and host-oriented semantic/driver tests default to the host triple. The LoongArch compiler correctly rejects those unavailable targets. The existing isolated CI lane intentionally runs only loongarch64_; that scoped command passes all four regressions, including opt-in Clang/LLD/QEMU interoperability.

Contribution scope

Make the harness usable with every advertised individual LLVM target feature (x86, aarch64, riscv, loongarch, wasm) without relying on ad hoc name filters. This is broader than the original core64/LoongArch separation fix in #484 and should be reviewed as its own refactor.

  • Classify architecture-specific versus backend-independent tests.
  • Gate architecture-specific tests and helper imports by the matching feature.
  • Build mixed target lists from enabled backends, retaining all currently enabled assertions.
  • Give backend-independent driver checks an available explicit target instead of the host default.
  • Keep external C/ABI execution requirements explicit; running no tests is not a success criterion.

Acceptance

  • An unfiltered codegen test invocation works with each single-backend feature on an appropriate host/toolchain, or execution-only cases are explicitly gated for that environment.
  • The full default and core64 suites keep their coverage and pass.
  • Clippy with warnings denied passes for the isolated configurations; disabled helpers/imports do not introduce warnings.
  • At least one CI lane runs the unfiltered isolated suite and exposes test counts.

Start in tests/codegen_regressions.rs, Cargo.toml and .github/workflows/rust.yml. tests/frontend_regressions.rs::frontend_target and projected_deref_preserves_pointer_storage_types demonstrate selecting an enabled target. This touches many target/ABI assumptions and is deliberately not labeled a good first issue.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    buildIssues related to building the project or compiling errors.help wantedThe issue requires extra attention or help from others.needs testingIssues that require additional testing or verification.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions