Skip to content

Add a new feature about RISCV target #132

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
Tracked by #11
WilliamWangPeng opened this issue Feb 16, 2020 · 4 comments
Closed
Tracked by #11

Add a new feature about RISCV target #132

WilliamWangPeng opened this issue Feb 16, 2020 · 4 comments
Labels
backend:RISC-V question A question, not bug report. Check out https://llvm.org/docs/GettingInvolved.html instead!

Comments

@WilliamWangPeng
Copy link

hi guys (-)
I have done some tests about llvm-mc now,such as---assemble , -disassemble ,-mattr=<a1,+a2,-a3,...> and I have seen many options in llvm-mc --help, I want to add a new feature about RISCV target, what can I do ?
thank you
Best Regards

@tclin914
Copy link
Contributor

tclin914 commented Mar 2, 2020

llvm-mc --help
...
--mhvx - Enable Hexagon Vector eXtensions
...

You can refer to clang/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp that how the option mhvx add.

@RKSimon RKSimon added backend:RISC-V question A question, not bug report. Check out https://llvm.org/docs/GettingInvolved.html instead! labels Apr 12, 2022
@llvmbot
Copy link
Member

llvmbot commented Apr 12, 2022

@llvm/issue-subscribers-backend-risc-v

@WilliamWangPeng
Copy link
Author

thank you dear guys, I have already added a feature and implement the RISC-V graphics subtarget extension.

@asb
Copy link
Contributor

asb commented Apr 13, 2022

Great to hear! Marking this issue as resolved then - just reopen if not.

@asb asb closed this as completed Apr 13, 2022
skatrak added a commit to skatrak/llvm-project that referenced this issue Aug 13, 2024
…ng (llvm#132)

* [Flang][MLIR][OpenMP] Fix num_teams, num_threads, thread_limit lowering

This patch fixes lowering for the num_teams, num_threads and thread_limit
clauses when inside of a target region and compiling for the host device.

The current approach requires these to be attached to the parent MLIR
omp.target operation. However, some incorrect checks based on the
`evalHasSiblings()` helper function would result in these clauses being
attached to the `omp.teams` or `omp.parallel` operation instead, triggering
a verifier error.

In this patch, these checks are updated to stop breaking when lowering
combined `target teams [X]` constructs. Also, the `genTeamsClauses()` function
is fixed to avoid processing num_teams and thread_limit twice, which probably
resulted from a recent merge.

Related op verifier checks are relaxed due to the difficulty of checking for the
proper conditions to be met. It is left to the MLIR creator to decide where
these clauses are attached and processed.
tbaederr added a commit that referenced this issue Mar 26, 2025
#132963)

…723)"

This reverts commit 1e2ad67.


Fix the previous commit on big-endian hosts by _not_ falling through to
the `uint8_t` code path.
jpinot pushed a commit to jpinot/llvm-project that referenced this issue Apr 9, 2025
Due to our necesity of promote DSA from firstprivate to shared
when a variable is used in cost/priority/onready or task body I've
refactored the whole mechanism a bit to support this.

The new pipeline works like this:

Let be IsBase a bool that indicates that a variable is not used in a subexpression.
Example:
  i = 4 // 'i' is base
  array[i] // i is NOT base

Let be Ignored a bool that indicated that a variable must not be analyzed
Let be a Promotion a change of DSA from firstprivate to shared only when

1. Explicit DSAs have always IsBase=true and Ignored=false
2. Dependencies assign an implicit DSA if not defined yet or
   a promotion
3. Cost/Priority/Onready and task body NOW can do a promotion too.

* IndVar of a loop directive is always Private and IsBase=true and Ignored=true.
  This is because we want to allow the user to use it as a dependency
  and don't want to emit DSA conflicts
Example:
  pragma oss taskloop in(array[i])
  for (int i ...) {}

* Multideps are always Private and IsBase=true and Ignored=true
  This is because we don't want to emit DSA conflicts when used in a multidep expr.
Example:
  pragma oss task in( { v[i], i = 0;10 } )
  {}

Addicionaly, the final implicit DSAs info needed to build the clauses has been moved to the stack,
instead of having that info in every visitor.

Closes llvm#132
changkhothuychung pushed a commit to changkhothuychung/llvm-project that referenced this issue Apr 22, 2025
arrv-sc pushed a commit to arrv-sc/llvm-project that referenced this issue May 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend:RISC-V question A question, not bug report. Check out https://llvm.org/docs/GettingInvolved.html instead!
Projects
None yet
Development

No branches or pull requests

5 participants