-
Notifications
You must be signed in to change notification settings - Fork 13.2k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Add v9, v8plus, and leoncasa target feature to sparc and use v8plus in create_object_file #132552
Conversation
186aaa6
to
8b08994
Compare
I'm not very familiar with Rust, but from what I can tell it looks okay. Also, a word on this:
|
Thanks for the clarification. I think separating However, we are using LLVM 19 which ties In #131222 we are trying to adopt the same approach as in LLVM 19, but actually adding the |
☔ The latest upstream changes (presumably #129884) made this pull request unmergeable. Please resolve the merge conflicts. |
8b08994
to
4dab43e
Compare
These commits modify compiler targets. |
2597e97
to
81374d7
Compare
Added commit to add (If it would be better to separate that commit into a separate PR, I would be happy to separate it.) |
I think fixing that here should be fine? Can we get a separate tracking issue for the SPARC target features though? |
81374d7
to
3711620
Compare
3711620
to
c059eb7
Compare
Opened #132783 and updated the tracking issue number. |
Cool, thanks! I reviewed this PR and it seems correct. But also this PR should only affect tier 3 targets, so... yolo! |
@bors r+ rollup |
…iaskrgr Rollup of 5 pull requests Successful merges: - rust-lang#132552 (Add v9, v8plus, and leoncasa target feature to sparc and use v8plus in create_object_file) - rust-lang#132745 (pointee_info_at: fix logic for recursing into enums) - rust-lang#132777 (try_question_mark_nop: update test for LLVM 20) - rust-lang#132785 (rustc_target: more target string fixes for LLVM 20) - rust-lang#132794 (Use a separate dir for r-a builds consistently in helix config) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of rust-lang#132552 - taiki-e:sparc-target-feature, r=workingjubilee Add v9, v8plus, and leoncasa target feature to sparc and use v8plus in create_object_file This adds the following three unstable target features: - `v9`: SPARC-V9 instructions ([LLVM definition][sparc-v9]) - Relevant to rust-lang#131222 (comment) - Relevant to rust-lang#132472 (comment) - This is also needed to implement taiki-e/atomic-maybe-uninit#31 (depends on inline assembly support) more robustly. - `v8plus`: SPARC-V8+ ABI ([LLVM definition][sparc-v8plus]) - This is added in LLVM 20. In LLVM 19 and older, it is emulated to work the same way as LLVM in each LLVM version. - See rust-lang#132585 (comment) for more. - `leoncasa`: CASA instruction[^1] of LEON3 and LEON4 processors ([LLVM definition][sparc-leoncasa], LLVM feature name: `hasleoncasa`) - This is needed to implement taiki-e/atomic-maybe-uninit#31 (depends on inline assembly support) more robustly. [^1]: Atomic CAS instruction [sparc-v9]: https://github.com/llvm/llvm-project/blob/f5e4ffaa49254706ad6fa209de8aec28e20f0041/llvm/lib/Target/Sparc/Sparc.td#L37-L39 [sparc-v8plus]: https://github.com/llvm/llvm-project/blob/f5e4ffaa49254706ad6fa209de8aec28e20f0041/llvm/lib/Target/Sparc/Sparc.td#L37-L39 [sparc-leoncasa]: https://github.com/llvm/llvm-project/blob/llvmorg-19.1.0/llvm/lib/Target/Sparc/LeonFeatures.td#L32-L37
…rkingjubilee Add v9, v8plus, and leoncasa target feature to sparc and use v8plus in create_object_file This adds the following three unstable target features: - `v9`: SPARC-V9 instructions ([LLVM definition][sparc-v9]) - Relevant to rust-lang#131222 (comment) - Relevant to rust-lang#132472 (comment) - This is also needed to implement taiki-e/atomic-maybe-uninit#31 (depends on inline assembly support) more robustly. - `v8plus`: SPARC-V8+ ABI ([LLVM definition][sparc-v8plus]) - This is added in LLVM 20. In LLVM 19 and older, it is emulated to work the same way as LLVM in each LLVM version. - See rust-lang#132585 (comment) for more. - `leoncasa`: CASA instruction[^1] of LEON3 and LEON4 processors ([LLVM definition][sparc-leoncasa], LLVM feature name: `hasleoncasa`) - This is needed to implement taiki-e/atomic-maybe-uninit#31 (depends on inline assembly support) more robustly. [^1]: Atomic CAS instruction [sparc-v9]: https://github.com/llvm/llvm-project/blob/f5e4ffaa49254706ad6fa209de8aec28e20f0041/llvm/lib/Target/Sparc/Sparc.td#L37-L39 [sparc-v8plus]: https://github.com/llvm/llvm-project/blob/f5e4ffaa49254706ad6fa209de8aec28e20f0041/llvm/lib/Target/Sparc/Sparc.td#L37-L39 [sparc-leoncasa]: https://github.com/llvm/llvm-project/blob/llvmorg-19.1.0/llvm/lib/Target/Sparc/LeonFeatures.td#L32-L37
…iaskrgr Rollup of 5 pull requests Successful merges: - rust-lang#132552 (Add v9, v8plus, and leoncasa target feature to sparc and use v8plus in create_object_file) - rust-lang#132745 (pointee_info_at: fix logic for recursing into enums) - rust-lang#132777 (try_question_mark_nop: update test for LLVM 20) - rust-lang#132785 (rustc_target: more target string fixes for LLVM 20) - rust-lang#132794 (Use a separate dir for r-a builds consistently in helix config) r? `@ghost` `@rustbot` modify labels: rollup
This adds the following three unstable target features:
v9
: SPARC-V9 instructions (LLVM definition)v8plus
: SPARC-V8+ ABI (LLVM definition)leoncasa
: CASA instruction1 of LEON3 and LEON4 processors (LLVM definition, LLVM feature name:hasleoncasa
)cc @thejpster @glaubitz
r? workingjubilee
Closes #132585
@rustbot label +O-SPARC +A-target-feature
Footnotes
Atomic CAS instruction ↩