Skip to content

Fill out more SuperPMI cases for LoongArch64 and RISCV64 #114136

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Apr 3, 2025

Conversation

BruceForstall
Copy link
Contributor

With these changes, SuperPMI can be used with a LoongArch64 or RISCV64 cross-targeting altjit and x64 MCH files to generate and view some code. There are lots of "missing data" cases; for RISCV64 about half of x64 contexts replay successfully.

More work is required for asmdiffs to work, such as updating coredistools and implementing Loongarch64/RISCV64 relocation handling.

With these changes, SuperPMI can be used with a LoongArch64 or RISCV64
cross-targeting altjit and x64 MCH files to generate and view some code.
There are lots of "missing data" cases; for RISCV64 about half of x64
contexts replay successfully.

More work is required for asmdiffs to work, such as updating
coredistools and implementing Loongarch64/RISCV64 relocation handling.
@Copilot Copilot AI review requested due to automatic review settings April 2, 2025 04:06
@ghost ghost added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Apr 2, 2025
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR enables SuperPMI to work with LoongArch64 and RISCV64 by extending the valid architectures and adding target-specific logic.

  • Updated help messages for arch, target_arch, and mch_arch to include loongarch64 and riscv64.
  • Added logic in verify_target_args to automatically override target_os to Linux and adjust mch_arch for LoongArch64/RISCV64 targets.
Files not reviewed (8)
  • src/coreclr/jit/disasm.cpp: Language not supported
  • src/coreclr/jit/importercalls.cpp: Language not supported
  • src/coreclr/tools/superpmi/superpmi-shared/compileresult.cpp: Language not supported
  • src/coreclr/tools/superpmi/superpmi-shared/spmiutil.h: Language not supported
  • src/coreclr/tools/superpmi/superpmi/commandline.cpp: Language not supported
  • src/coreclr/tools/superpmi/superpmi/jitinstance.cpp: Language not supported
  • src/coreclr/tools/superpmi/superpmi/neardiffer.cpp: Language not supported
  • src/coreclr/tools/superpmi/superpmi/superpmi.cpp: Language not supported

@BruceForstall
Copy link
Contributor Author

@AndyAyersMS PTAL
cc @dotnet/jit-contrib

@risc-vv
Copy link

risc-vv commented Apr 2, 2025

141aa94 is being scheduled for building and testing

GIT: 141aa9431fa7bf2c581d4f9caf534b9eea3ace21
REPO: dotnet/runtime
BRANCH: main

Release-build FAILED

buildinfo.json
Compilation failed during core build

@risc-vv
Copy link

risc-vv commented Apr 2, 2025

RISC-V Release-CLR-VF2: 9528 / 9548 (99.79%)
=======================
      passed: 9528
      failed: 3
     skipped: 106
      killed: 17
------------------------
  TOTAL libs: 9654
 TOTAL tests: 9654
   REAL time: 2h 12min 9s 520ms
=======================

Release-CLR-VF2.md, Release-CLR-VF2.xml, testclr_output.tar.gz

Build information and commands

GIT: 317c594686aecd81c2a0dddd5e81488d6a6b642f
CI: a8426a46d8575dfcb3b5fec0d7d0b7a7c118d690
REPO: dotnet/runtime
BRANCH: main
CONFIG: Release
LIB_CONFIG: Release

RISC-V Release-FX-VF2: 435745 / 461664 (94.39%)
=======================
      passed: 435745
      failed: 707
     skipped: 1486
      killed: 25212
------------------------
  TOTAL libs: 259
 TOTAL tests: 463150
   REAL time: 2h 56min 32s 872ms
=======================

Release-FX-VF2.md, Release-FX-VF2.xml, testfx_output.tar.gz

Build information and commands

GIT: 317c594686aecd81c2a0dddd5e81488d6a6b642f
CI: a8426a46d8575dfcb3b5fec0d7d0b7a7c118d690
REPO: dotnet/runtime
BRANCH: main
CONFIG: Release
LIB_CONFIG: Release

RISC-V Release-FX-QEMU: 642620 / 675557 (95.12%)
=======================
      passed: 642620
      failed: 917
     skipped: 1606
      killed: 32020
------------------------
  TOTAL libs: 259
 TOTAL tests: 677163
   REAL time: 2h 26min 33s 209ms
=======================

Release-FX-QEMU.md, Release-FX-QEMU.xml, testfx_output.tar.gz

Build information and commands

GIT: 317c594686aecd81c2a0dddd5e81488d6a6b642f
CI: a8426a46d8575dfcb3b5fec0d7d0b7a7c118d690
REPO: dotnet/runtime
BRANCH: main
CONFIG: Release
LIB_CONFIG: Release

RISC-V Release-CLR-QEMU: 9528 / 9548 (99.79%)
=======================
      passed: 9528
      failed: 3
     skipped: 106
      killed: 17
------------------------
  TOTAL libs: 9654
 TOTAL tests: 9654
   REAL time: 2h 47min 22s 394ms
=======================

Release-CLR-QEMU.md, Release-CLR-QEMU.xml, testclr_output.tar.gz

Build information and commands

GIT: 317c594686aecd81c2a0dddd5e81488d6a6b642f
CI: a8426a46d8575dfcb3b5fec0d7d0b7a7c118d690
REPO: dotnet/runtime
BRANCH: main
CONFIG: Release
LIB_CONFIG: Release

@BruceForstall
Copy link
Contributor Author

/ba-g azure linux 3 timeouts

@BruceForstall BruceForstall merged commit 970070e into dotnet:main Apr 3, 2025
109 of 111 checks passed
@BruceForstall BruceForstall deleted the FillOutLoongarchRiscVcases branch April 3, 2025 00:10
@github-actions github-actions bot locked and limited conversation to collaborators May 4, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants