Implement Intel HLE and RTM intrinsics
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
調査の方向性
Intel Intrinsic Guide と clang の rtmintrin.h から始めて、4 つの RTM intrinsic とそれらの LLVM マッピングを比較します。xbegin と returns_twice に関する参照先の LLVM Bugzilla の議論を確認し、続いて core::arch の実装と Rust の feature whitelist を見つけます。RTM intrinsic が命令テスト付きで公開され、rtm feature が受け入れられれば完了です。
索引モデルが issue の本文から書いたものです。
説明
@mtak- mentioned _xbegin recently, we should probably expose them all via core::arch.
The Intel RTM (Restricted Transactional Memory) intrinsics (Intel Intrinsic Guide, clang header, CPUID: RTM, EAX=7, ECX=0: Extended Features, EBX=11):
void _xabort (const unsigned int imm8)(assert_instr(xabort), `llvm.x86.xabort)unsigned int _xbegin (void)(assert_instr(xbegin), llvm.x86.xbegin, note: can return multiple times)void _xend (void)(assert_instr(xend), llvm.x86.xend)unsigned char _xtest (void)(assert_instr(xtest), llvm.x86.xtest)
We'd need to whitelist the rtm feature in rust-lang/rust as part of this.
I've asked on the LLVM bugzilla whether xbegin needs to be marked returns_twice: https://bugs.llvm.org/show_bug.cgi?id=41493, Craig Topper suggested on IRC to submit an LLVM patch to mark this intrinsic / clang intrinsic as returns_twice (cc @ctopper - hope I get the github id right), but @tnorthover mentioned that this might not be necessary or enough. We don't have to figure this out for the initial implementation, as @mtack- mentions, clang does not do this, but we should not forget about this issue.
- 主要言語
- Rust
- スター
- 694
- フォーク
- 341
- 平均マージ
- 3日 2時間
- マージ済み PR(30日)
- 14
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
rust-lang/stdarch のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
rust-lang/stdarch#2218 · コメント 5 件 ·
メンテナーはふだん 1 日以内に返信
-
A-x86 P-high
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
rust-lang/stdarch#522 · コメント 26 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 64/100
rust-lang/stdarch#2216 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
Can non-temporal loads use the LLVM intrinsic instead?対応中かも @ruriww が 101 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 48/100
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 55/100
rust-lang/stdarch#2154 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
rust-lang/stdarch の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
nautechsystems/nautilus_trader#5365 ·
メンテナーはふだん 1 日以内に返信
-
documentation
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
IntersectMBO/developer-experience#347 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
registrystack/registry-stack#2168 ·
メンテナーはふだん 1 日以内に返信
-
bug crate: 3d help wanted triage
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
kornia/kornia-rs#1203 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 1 日以内に返信