Skip to content

chore(deps): bump ext/llvm-project from 8e85b77 to 851da60 #799

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

Closed

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github May 22, 2025

Bumps ext/llvm-project from 8e85b77 to 851da60.

Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [ext/llvm-project](https://github.com/llvm/llvm-project) from `8e85b77` to `851da60`.
- [Release notes](https://github.com/llvm/llvm-project/releases)
- [Commits](llvm/llvm-project@8e85b77...851da60)

---
updated-dependencies:
- dependency-name: ext/llvm-project
  dependency-version: 851da603045654f0adcf29927a2795a2a8f38c14
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot added dependencies Pull requests that update a dependency file submodules Pull requests that update submodules code labels May 22, 2025
@dependabot dependabot bot added dependencies Pull requests that update a dependency file submodules Pull requests that update submodules code labels May 22, 2025
Copy link
Contributor Author

dependabot bot commented on behalf of github May 26, 2025

Superseded by #814.

@dependabot dependabot bot closed this May 26, 2025
@dependabot dependabot bot deleted the dependabot/submodules/ext/llvm-project-851da60 branch May 26, 2025 14:59
@AFOliveira
Copy link
Collaborator

@lenary, can you please give me a brief explanation here? It seems that .vxm instructions have v0 in the "AsmString" and in the "InOperandList", but the variable is nowhere to be seen in "Inst". Does this mean the variable exists in the assembly but not as a variable in hardware? I've tried looking it up in the spec, but I couldn't find the necessary information to understand how v0 is encoded. It's not clear to me if it is hardcoded in hardware or not, and if it is hardcoded, why would we need it to show up in assembly?

@ThinkOpenly
Copy link
Collaborator

It seems that .vxm instructions have v0 in the "AsmString" and in the "InOperandList", but the variable is nowhere to be seen in "Inst". Does this mean the variable exists in the assembly but not as a variable in hardware?

The Sail code might be instructive:

mapping vxmtype_mnemonic : vxmfunct6 <-> string = {
  VXM_VMADC    <-> "vmadc.vxm", /* carry in, carry out */
  VXM_VMSBC    <-> "vmsbc.vxm"
}
    
mapping clause assembly = VXMTYPE(funct6, vs2, rs1, vd)
  <-> vxmtype_mnemonic(funct6) ^ spc() ^ vreg_name(vd) ^ sep() ^ vreg_name(vs2) ^ sep() ^ reg_name(rs1) ^ sep() ^ "v0"

This shows "v0" (and only that register) being always explicitly present for the "vmadc.vxm" and "vmsbc.vxm" instructions.

However, it is not part of the encoding:

mapping clause encdec = VXMTYPE(funct6, vs2, rs1, vd)
  <-> encdec_vxmfunct6(funct6) @ 0b0 @ encdec_vreg(vs2) @ encdec_reg(rs1) @ 0b100 @ encdec_vreg(vd) @ 0b1010111

So, it must be part of the assembly and can only be "v0", but it is only implicit in the encoding. .vfm, .vim, and .vvm instructions are similar.

@AFOliveira
Copy link
Collaborator

Yes, I looked at it and it is exactly that. It is hardcoded in hardware, but assembly still defines it. The other problem is that LLVM considers it to be vm with the most recent changes, but I need to go through git blame and understand why that was made.

@lenary
Copy link
Collaborator

lenary commented May 27, 2025

Sorry, I was out-of-office. I want to look at this today. I think we had, for a while, a situation where they were hardcoded and the mask operand was added using c++ code. As you see now, we have a VMaskCarryInOp:$vm operand - VMaskCarryInOp is a special kind of operand which can only be v0. I may need to go over with you how these RegisterOperands work, because we use them in a few places (also for Zfinx and friends).

@AFOliveira
Copy link
Collaborator

I think we had, for a while, a situation where they were hardcoded and the mask operand was added using c++ code

That's why this was working in the first place :) Probably a recent fix made this fail.

I may need to go over with you how these RegisterOperands work, because we use them in a few places (also for Zfinx and friends).

I would definitely appreciate that!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file submodules Pull requests that update submodules code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants