Skip to content
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

[GCAtomic] Treat single capability structs like a capability #724

Open
wants to merge 4 commits into
base: dev
Choose a base branch
from

Commits on Feb 4, 2024

  1. [CHERI] Add a test for code generation of atomic aggregates

    See https://git.morello-project.org/morello/llvm-project/-/issues/75
    for Morello, where this is miscompiled to i128 exchanges instead of
    using libcalls/capabilities.
    arichardson committed Feb 4, 2024
    Configuration menu
    Copy the full SHA
    deb4920 View commit details
    Browse the repository at this point in the history
  2. Add a typed pointer version to c11-atomic-caps-struct.c

    This shows the undesirable casts to i128. They happen to be benign for
    the current codegen, but we should be using a capability type for the
    struct that contains only one capability.
    arichardson committed Feb 4, 2024
    Configuration menu
    Copy the full SHA
    fbc577d View commit details
    Browse the repository at this point in the history
  3. Add Type::isSingleCapabilityRecord() helper function

    This is duplicated twice in RISCVABIInfo and I intend to reuse this in
    the following commit.
    arichardson committed Feb 4, 2024
    Configuration menu
    Copy the full SHA
    d712bb9 View commit details
    Browse the repository at this point in the history
  4. [GCAtomic] Treat single capability structs like a capability

    This allows emitting inline atomics instead of needing a libcall and
    avoids casting such structs to i128.
    
    See https://git.morello-project.org/morello/llvm-project/-/issues/75
    arichardson committed Feb 4, 2024
    Configuration menu
    Copy the full SHA
    fdaf4d1 View commit details
    Browse the repository at this point in the history