Skip to content

[RISCV] Add support for new unprivileged extensions defined in profiles spec #77458

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 7 commits into from
Jan 18, 2024

Conversation

lukel97
Copy link
Contributor

@lukel97 lukel97 commented Jan 9, 2024

This adds minimal support for 7 new unprivileged extensions that were defined as a part of
the RISC-V Profiles specification here:
https://github.com/riscv/riscv-profiles/blob/main/profiles.adoc#7-new-isa-extensions

  • Ziccif: Main memory supports instruction fetch with atomicity requirement
  • Ziccrse: Main memory supports forward progress on LR/SC sequences
  • Ziccamoa: Main memory supports all atomics in A
  • Zicclsm: Main memory supports misaligned loads/stores
  • Za64rs: Reservation set size of 64 bytes
  • Za128rs: Reservation set size of 128 bytes
  • Zic64b: Cache block size isf 64 bytes

As stated in the specification, these extensions don't add any new features but
describe existing features. So this patch only adds parsing and subtarget
features.

@llvmbot
Copy link
Member

llvmbot commented Jan 9, 2024

@llvm/pr-subscribers-mc
@llvm/pr-subscribers-clang
@llvm/pr-subscribers-llvm-support

@llvm/pr-subscribers-backend-risc-v

Author: Luke Lau (lukel97)

Changes

This adds minimal support for 7 new unprivileged extensions that were defined as a part of
the RISC-V Profiles specification here:
https://github.com/riscv/riscv-profiles/blob/main/profiles.adoc#7-new-isa-extensions

As stated in the specification, these extensions don't add any new features but
describe existing features. So this patch only adds parsing and subtarget
features.


Patch is 157.19 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/77458.diff

3 Files Affected:

  • (modified) llvm/lib/Support/RISCVISAInfo.cpp (+7)
  • (modified) llvm/lib/Target/RISCV/RISCVFeatures.td (+26)
  • (modified) llvm/test/CodeGen/RISCV/attributes.ll (+14)
<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
    <meta http-equiv="Content-Security-Policy" content="default-src 'none'; base-uri 'self'; connect-src 'self'; form-action 'self'; img-src 'self' data:; script-src 'self'; style-src 'unsafe-inline'">
    <meta content="origin" name="referrer">
    <title>Server Error &middot; GitHub</title>
    <style type="text/css" media="screen">
      body {
        background-color: #f1f1f1;
        margin: 0;
      }
      body,
      input,
      button {
        font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
      }

      .container { margin: 50px auto 40px auto; width: 600px; text-align: center; }

      a { color: #4183c4; text-decoration: none; }
      a:hover { text-decoration: underline; }

      h1 { letter-spacing: -1px; line-height: 60px; font-size: 60px; font-weight: 100; margin: 0px; text-shadow: 0 1px 0 #fff; }
      p { color: rgba(0, 0, 0, 0.5); margin: 10px 0 10px; font-size: 18px; font-weight: 200; line-height: 1.6em;}

      ul { list-style: none; margin: 25px 0; padding: 0; }
      li { display: table-cell; font-weight: bold; width: 1%; }

      .logo { display: inline-block; margin-top: 35px; }
      .logo-img-2x { display: none; }
      @media
      only screen and (-webkit-min-device-pixel-ratio: 2),
      only screen and (   min--moz-device-pixel-ratio: 2),
      only screen and (     -o-min-device-pixel-ratio: 2/1),
      only screen and (        min-device-pixel-ratio: 2),
      only screen and (                min-resolution: 192dpi),
      only screen and (                min-resolution: 2dppx) {
        .logo-img-1x { display: none; }
        .logo-img-2x { display: inline-block; }
      }

      #suggestions {
        margin-top: 35px;
        color: #ccc;
      }
      #suggestions a {
        color: #666666;
        font-weight: 200;
        font-size: 14px;
        margin: 0 10px;
      }

      #parallax_wrapper {
        position: relative;
        z-index: 0;
      }
      #parallax_field {
        overflow: hidden;
        position: absolute;
        left: 0;
        top: 0;
        height: 380px;
        width: 100%;
      }
      #parallax_illustration {
        display: block;
        margin: 0 auto;
        width: 940px;
        height: 380px;
        position: relative;
        overflow: hidden;
      }
      #parallax_illustration #parallax_sign {
        position: absolute;
        top: 25px;
        left: 582px;
        z-index: 10;
      }
      #parallax_illustration #parallax_octocat {
        position: absolute;
        top: 66px;
        left: 431px;
        z-index: 8;
      }
      #parallax_illustration #parallax_error_text {
        display: block;
        width: 400px;
        height: 144px;
        position: absolute;
        top: 165px;
        left: 152px;
        font-family:Arial, Helvetica, sans-serif;
        font-weight: bold;
        font-size: 14px;
        line-height: 18px;
        background-image: url('data:image/png;base64,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');
        background-repeat: no-repeat;
        padding: 64px 0 0 106px;
        color: #183913;
        text-shadow: 1px 1px 0px rgba(0, 0, 0, 0.30);
        z-index: 5;
      }
      #parallax_field #parallax_bg {
        overflow: hidden;
        width: 105%;
        position: absolute;
        top: -20px;
        left: -20px;
        z-index: 1;
      }
      #parallax_illustration #parallax_error_text span {
        display: block;
        margin-left: 12px;
      }
    </style>
  </head>
  <body>

    <div id="parallax_wrapper">
      <div id="parallax_field">
        <img alt="" height="415" id="parallax_bg" width="980" src="data:image/jpeg;base64,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...
[truncated]

@asb
Copy link
Contributor

asb commented Jan 9, 2024

As RVA22 is ratified, I think treating this as non-experimental and v1.0 (as you have) makes sense. I'm wondering if Ziccrse, Ziccamoa, Za64rs, and Za128rs should imply A though?

@lukel97
Copy link
Contributor Author

lukel97 commented Jan 9, 2024

As RVA22 is ratified, I think treating this as non-experimental and v1.0 (as you have) makes sense. I'm wondering if Ziccrse, Ziccamoa, Za64rs, and Za128rs should imply A though?

Yeah, I just chose 1.0 since I couldn't find any other information on them.
I also considered implying A but I couldn't find any mention of it in the spec. These extensions are all more or less defined by a single sentence. Do we have any existing precedent where we take the liberty of assuming implied extensions?

@asb
Copy link
Contributor

asb commented Jan 9, 2024

Do we have any existing precedent where we take the liberty of assuming implied extensions?

I don't think so. It doesn't need to block this PR, but it would be good to raise the question about those implications in the profiles repo.

@lukel97
Copy link
Contributor Author

lukel97 commented Jan 9, 2024

I don't think so. It doesn't need to block this PR, but it would be good to raise the question about those implications in the profiles repo.

Filed riscv/riscv-profiles#139

@topperc topperc requested a review from 4vtomat January 10, 2024 01:04
@4vtomat
Copy link
Member

4vtomat commented Jan 10, 2024

Can you also add the test cases in:

  1. clang/test/Preprocessor/riscv-target-features.c
    2. llvm/test/MC/RISCV/attribute-arch.s

@wangpc-pp
Copy link
Contributor

Thanks! I was going to add them too.
These names will be used in profiles only, but I don't know if we should add them to RISCVUsage.rst.

@llvmbot llvmbot added clang Clang issues not falling into any other category mc Machine (object) code labels Jan 10, 2024
@lukel97
Copy link
Contributor Author

lukel97 commented Jan 10, 2024

@asb I got a response from riscv/riscv-profiles#139, looks like Ziccrse, Ziccamoa, Za64rs, and Za128rs don't imply A.

@lukel97
Copy link
Contributor Author

lukel97 commented Jan 10, 2024

These names will be used in profiles only, but I don't know if we should add them to RISCVUsage.rst.

Good point, I added them in anyway so we're consistent at least. I couldn't find any other "featureless" extensions that we currently support.

Copy link
Contributor

@asb asb left a comment

Choose a reason for hiding this comment

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

LGTM, but please add a release note too.

@lukel97 lukel97 force-pushed the rva-profile-user-extensions branch from b54279f to 6459e74 Compare January 11, 2024 08:09
@lukel97
Copy link
Contributor Author

lukel97 commented Jan 11, 2024

Rebased on top of 79889fe

@lukel97 lukel97 force-pushed the rva-profile-user-extensions branch from 6459e74 to 3d1e019 Compare January 18, 2024 12:32
…es spec

This adds minimal support for 7 new extensions that were defined as a part of
the RISC-V Profiles specification here:
https://github.com/riscv/riscv-profiles/blob/main/profiles.adoc#7-new-isa-extensions

As stated in the specification, these extensions don't add any new features but
describe existing features. So this patch only adds parsing and subtarget
features.
@lukel97 lukel97 force-pushed the rva-profile-user-extensions branch from 3d1e019 to 74b5231 Compare January 18, 2024 14:49
@lukel97
Copy link
Contributor Author

lukel97 commented Jan 18, 2024

Rebased on top of 9d6e189 which should fix the pre-merge check test failure

@lukel97 lukel97 merged commit 8649328 into llvm:main Jan 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend:RISC-V clang Clang issues not falling into any other category llvm:support mc Machine (object) code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants