This is an archive of the discontinued LLVM Phabricator instance.

[RISCV] Initial ISel support for the experimental zacas extension
AbandonedPublic

Authored by dtcxzyw on Aug 27 2023, 11:21 AM.

Details

Summary

This patch implements the v1.0-rc3 draft extension based on AArch64's version.

It introduces two register classes (GPRPI64/GPRPI128) and some pseudo instructions for correct register allocation.
These pseudo instructions will be expanded in the RISCVExpandAtomicPseudoInsts pass.

BTW, I am not sure that the implementation of MC layer is correct.

Diff Detail

Event Timeline

dtcxzyw created this revision.Aug 27 2023, 11:21 AM
Herald added a project: Restricted Project. · View Herald TranscriptAug 27 2023, 11:21 AM
dtcxzyw requested review of this revision.Aug 27 2023, 11:21 AM
Herald added a project: Restricted Project. · View Herald TranscriptAug 27 2023, 11:21 AM
dtcxzyw edited the summary of this revision. (Show Details)Aug 28 2023, 1:29 AM
wangpc added inline comments.Aug 28 2023, 1:56 AM
llvm/lib/Target/RISCV/RISCVInstrInfoA.td
108

Adding Scheds should be in separate patch.

dtcxzyw updated this revision to Diff 554319.Aug 29 2023, 7:17 AM
dtcxzyw added a reviewer: wangpc.
  • Rebase
  • Remove Sched
dtcxzyw marked an inline comment as done.Aug 29 2023, 7:17 AM
dtcxzyw abandoned this revision.Mon, Nov 20, 7:39 PM
llvm/test/CodeGen/RISCV/atomic-cmpxchg-flag.ll