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

Default to v9 semantics in clang #757

Merged
merged 10 commits into from
Feb 19, 2025

Conversation

arichardson
Copy link
Member

Ideally we would delete all this backwards compatibility code, but there
might still be implementations around that depend on the old behaviour.
Keep it until we are sure it can be deleted.

Also some minor refactoring in preparation for #756

@arichardson
Copy link
Member Author

Depends on CTSRD-CHERI/cheribsd#2322

@arichardson
Copy link
Member Author

@jrtc27 CTSRD-CHERI/cheribsd#2322 has been merged - ok to merge this?

@arichardson
Copy link
Member Author

Ci failure caused by llvm/llvm-project#126302

arichardson and others added 10 commits February 18, 2025 09:23
This may have been needed before ISAInfo handled custom extensions, but
now we can just defer to ISAInfo. No functional change intended
The upcoming standard no longer includes cgetoffset (and cgetaddr has
been removed in ISAv9). For now the assembly code still accepts cgetaddr
and converts it to a move, but use an intrinsic call instead as that can
be optimized to a subregister read on next use rather the requiring an
explicit move.
This also handles implied features and therefore is more future-proof than
a simple string comparison.
We have to use XLenVT for getting the intrinsic type otherwise we end
up triggering an assertion in LegalizeDAG.
Mostly just updates the RUN line, but in some cases changes the checks for
function signature. Change in preparation for the next commit.

No functional change intended
No longer needed with opaque pointers.
This allows quite a lot of cleanup now that all supported implementations
of CHERI-RISC-V default to ISAv9 semantics. Most importantly all the logic
to handle trapping instructions can be dropped as well as the legacy
support for CToPtr/CFromPtr.
@arichardson arichardson merged commit 1b5470a into CTSRD-CHERI:dev Feb 19, 2025
6 checks passed
@arichardson arichardson deleted the default-to-v9 branch February 19, 2025 01:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant