This was part of the N extension which didn't make it version
1.12 of the privilege specification.
The uret instruction was removed in D149308.
Paths
| Differential D149314
[RISCV] Remove support for attribute interrupt("user"). ClosedPublic Authored by craig.topper on Apr 26 2023, 5:36 PM.
Details Summary This was part of the N extension which didn't make it version The uret instruction was removed in D149308.
Diff Detail
Event TimelineThis revision is now accepted and ready to land.Apr 26 2023, 6:40 PM This revision was landed with ongoing or failed builds.Apr 27 2023, 8:21 AM Closed by commit rG05d0caef6081: [RISCV] Remove support for attribute interrupt("user"). (authored by craig.topper). · Explain Why This revision was automatically updated to reflect the committed changes. Comment Actions Is this a potentially breaking change that we need to call out for users to be aware of? Comment Actions
We should mention this in the Clang release notes I think. Comment Actions
Beyond that, we've got a process for what to do when considering potentially breaking changes, we should be following that: https://llvm.org/docs/DeveloperPolicy.html#making-potentially-breaking-changes Also, if we're all agreed this is potentially breaking, it really should have more review time and buy-in from the code owner. Comment Actions
I don't think this change should count as "potentially breaking" in the sense of that document. We're talking about an experimental feature for an experimental ISA extension which never got to ratification. There's no hardware in the wild which implements this (to my knowledge). Given the churn on the RISCV extension side, we've adopted a policy for experimental extensions (https://llvm.org/docs/RISCVUsage.html#experimental-extensions) which offers much less in the way of support. I think we should release note it just to be friendly, but the process described in your link is significant overkill. Comment Actions
If we don't need to use that process, it's totally reasonable to skip it. It wasn't clear just how disruptive this change is from the review summary and there was not really any chance for discussion before this landed. Release noting it would be fine by me if the folks with more knowledge in this area think that's sufficient. Comment Actions
+1 on this. The upstream (RISC-V side) process for the ISA extension lifecycle and their ratification is now properly established, and we gate not-yet-ratified things behind -menable-experimental-extensions going forward. This review perhaps could have been held open a bit longer to check there's no concerns, and thanks to Aaron for raising the question. But I think a release note only is the appropriate option here. Comment Actions
SGTM, thank you for the discussion! Comment Actions
Thanks Craig, that looks great
Revision Contents
Diff 517405 clang/include/clang/Basic/Attr.td
clang/lib/CodeGen/TargetInfo.cpp
clang/test/Sema/riscv-interrupt-attr.c
|
clang-format not found in user’s local PATH; not linting file.