-
Notifications
You must be signed in to change notification settings - Fork 242
Auto-enable Vector Crypto superset extensions (Zvkn, Zvknc, Zvkng, Zvks, Zvksc, Zvksg) #1096
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
Conversation
|
Does somebody know how things actually work with the device tree and shorthands like these:
So let’s say I enable Zvknc, which pulls in Zvkn + Zvbc, and those pull in Zvkned + Zvknhb + Zvkb + Zvkt. Should the final device tree only print As far as I can see now its actually printing |
|
Yeah I think we can print the minimum necessary if the others are implied. You don't have to always list all the sub-extensions. |
|
I think the simplest approach is to not include these superset extensions in the config file and instead just have the smallest granularity extensions. These should still exist in the extensions enum and would get turned on automatically if all of the appropriate subset extensions are enabled. In terms of what to print in the device tree/isa string, it might be the least ambiguous to just print the full list even if that is more verbose. I know some tools (like riscv-config) don't always handle the superset extensions well. |
|
Yes, I think for now we should stick to the smallest granularity extensions in the model and config file. We could rely on other tooling (such as that in #993) to convert superset extensions into Sail model configurations. |
792604f to
582d223
Compare
|
But note that in some cases it isn't as simple as extension 1 = extensions 2 + 3. IIRC think supporting B or C is different to supporting the extensions that they cover. In this case I believe it is though. |
f39f46a to
d35ae3b
Compare
|
|
d35ae3b to
7f94a23
Compare
|
I'm rethinking the choice to not expose superset extensions in the config file. It necessitates extra tooling (and a degree of user-unfriendliness); is there a way of handling this without extra tooling? This would mean some extensions may not appear in the config file, e.g. if |
7f94a23 to
4652341
Compare
…ks, Zvksc and Zvksg)
Additionally simplify code and the dependencies between superset and subset extensions
4652341 to
96ba8c3
Compare
jordancarlin
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM based on the decisions made in Monday's meeting.
|
Isn't this going to put the superset extensions and the subset ones in the ISA string? That seems slightly odd... Or is that intentional? |
I think we decided that the generated ISA string should take the approach of being exhaustive to satisfy tools that might be looking for one or the other. |
Add remaining vector crypto extensions and automatically enable superset extensions when all of the appropriate subset extensions are enabled.