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

Add SiFive VCIX state register #56

Closed
wants to merge 1 commit into from

Conversation

4vtomat
Copy link

@4vtomat 4vtomat commented Sep 3, 2024

No description provided.

|*Vendor* |*Name* |*Description*
|SiFive |sf.vcix_state |This dummy CSR is used to prevent the scheduler to reorder between SiFive vector instructions defined in `XSFVCP` extension.
|===

Copy link
Collaborator

Choose a reason for hiding this comment

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

This document should not become a registry of all vendor CSRs (or vendor instructions).
Instead, let's restrict ourselves to vendor prefixes and vendor extensions with the intent to avoid potential name collisions.

We've defined the vendor prefixes to be equal for instructions and CSRs (see the section "CSR naming scheme" above). A SiFive vendor prefix (sf.) and the XSFVCP extension are already defined above. Therefore, I think this PR is not needed.

@cmuellner
Copy link
Collaborator

When I look up the XSFVCP extension specification (referenced by the link https://sifive.cdn.prismic.io/sifive/c3829e36-8552-41f0-a841-79945784241b_vcix-spec-software.pdf in this repository), then I can't find the term vcix_state.

As mentioned above, I don't think that sf.* instructions or CSRs should be defined here. However, projects that should get support for these probably need a vendor specification that is complete and define sf.vcix_state.

@kito-cheng
Copy link
Collaborator

That's kinda special case for the vendor CSR, it's a pseudo register which used for guarantee the order between those instruction, but I agree that should not list here, otherwise other vendor will go here to add their own, and this doc will become hard to maintain.

@4vtomat 4vtomat closed this Sep 10, 2024
@4vtomat 4vtomat deleted the add_sf_vcix_state branch September 10, 2024 07:22
4vtomat added a commit to llvm/llvm-project that referenced this pull request Oct 1, 2024
…6914)

riscv-non-isa/riscv-toolchain-conventions#56
Resolved #106700.
This enables inline asm to have vcix_state to be a clobbered register
thus disable reordering between VCIX intrinsics and inline asm.
puja2196 pushed a commit to puja2196/LLVM-tutorial that referenced this pull request Oct 2, 2024
…6914)

riscv-non-isa/riscv-toolchain-conventions#56
Resolved llvm/llvm-project#106700.
This enables inline asm to have vcix_state to be a clobbered register
thus disable reordering between VCIX intrinsics and inline asm.
VitaNuo pushed a commit to VitaNuo/llvm-project that referenced this pull request Oct 2, 2024
…m#106914)

riscv-non-isa/riscv-toolchain-conventions#56
Resolved llvm#106700.
This enables inline asm to have vcix_state to be a clobbered register
thus disable reordering between VCIX intrinsics and inline asm.
VitaNuo pushed a commit to VitaNuo/llvm-project that referenced this pull request Oct 2, 2024
…m#106914)

riscv-non-isa/riscv-toolchain-conventions#56
Resolved llvm#106700.
This enables inline asm to have vcix_state to be a clobbered register
thus disable reordering between VCIX intrinsics and inline asm.
Sterling-Augustine pushed a commit to Sterling-Augustine/llvm-project that referenced this pull request Oct 3, 2024
…m#106914)

riscv-non-isa/riscv-toolchain-conventions#56
Resolved llvm#106700.
This enables inline asm to have vcix_state to be a clobbered register
thus disable reordering between VCIX intrinsics and inline asm.
xgupta pushed a commit to xgupta/llvm-project that referenced this pull request Oct 4, 2024
…m#106914)

riscv-non-isa/riscv-toolchain-conventions#56
Resolved llvm#106700.
This enables inline asm to have vcix_state to be a clobbered register
thus disable reordering between VCIX intrinsics and inline asm.
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.

3 participants