This is an archive of the discontinued LLVM Phabricator instance.

[RISCV] Bump I, F, D, and A extension versions to 20191214 spec version
ClosedPublic

Authored by craig.topper on Mar 29 2023, 1:22 PM.

Details

Summary

New versions I2.1, F2.2, D2.2 A2.1

Make F and Zfinx imply Zicsr.
Make G imply Zifencei.

This should have no impact to generated code. We have no plans to require Zicsr/Zifencei extension to be explicitly enabled to use Zicsr/Zifencei instructions in assembly.

See https://reviews.llvm.org/D147183 for documentation regarding what version specification we implement.

Diff Detail

Event Timeline

craig.topper created this revision.Mar 29 2023, 1:22 PM
Herald added a project: Restricted Project. · View Herald Transcript
craig.topper requested review of this revision.Mar 29 2023, 1:22 PM
Herald added projects: Restricted Project, Restricted Project. · View Herald TranscriptMar 29 2023, 1:22 PM

Zve32x needs to imply Zicsr too

asb added a comment.Mar 30 2023, 6:27 AM

I've added a couple of inline comments, but otherwise this seems fine to me. I'd suggest updating the patch description to reference Philip's documentation patch (which was posted soon after this), and also to explain why there are no codegen changes (I think "Either changes to the specification required no codegen changes, or LLVM was written against a newer version of the specification than it claimed" is vague but accurate).

llvm/lib/Support/RISCVISAInfo.cpp
625

Perhaps update to // g expands to extensions in RISCVGImplications. or delete altogether.

llvm/unittests/Support/RISCVISAInfoTest.cpp
253

Why is this test dropped? It's not redundant as there's a slightly separate path for parsing the version on the base ISA vs other extensions (this could perhaps be refactored).

Address review comments

asb accepted this revision.Mar 30 2023, 1:09 PM

LGTM, thanks (though see minor note about tweaking commit message to clarify the change).

This revision is now accepted and ready to land.Mar 30 2023, 1:09 PM
craig.topper edited the summary of this revision. (Show Details)Mar 30 2023, 2:01 PM
craig.topper edited the summary of this revision. (Show Details)Mar 30 2023, 2:08 PM

Updated release notes

This revision was landed with ongoing or failed builds.Mar 30 2023, 3:29 PM
This revision was automatically updated to reflect the committed changes.