-
Notifications
You must be signed in to change notification settings - Fork 13.5k
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
Comments
You can refer to clang/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp that how the option mhvx add. |
@llvm/issue-subscribers-backend-risc-v |
thank you dear guys, I have already added a feature and implement the RISC-V graphics subtarget extension. |
Great to hear! Marking this issue as resolved then - just reopen if not. |
…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.
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
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
The text was updated successfully, but these errors were encountered: