ころころゴロリ

168 posts

ころころゴロリ

ころころゴロリ

@k0mkc

汽車ぽっぽ

Katılım Eylül 2020
40 Takip Edilen31 Takipçiler
Sabitlenmiş Tweet
ころころゴロリ
ころころゴロリ@k0mkc·
僕のx86リフター・バイナリ書き換えリコンパイラ用にReactでVisualizer書きました。リフター・再コンパイラ・リンカは100% Rustで書かれてるよ。
日本語
1
1
6
1.8K
ころころゴロリ
@xTc0uupEdQd3bbU もう少し厳密に言うと、多分codegen-units=Nも影響すると思います。 さらにInstCombinePassで、 foo2: "urem N, pow2" -> "and N, pow2-1"[^1] foo3: "(N & ~X) == X" -> "(N & X) == 0"[^2] の書き換えが起こってるみたいです。 [^1]: #L73" target="_blank" rel="nofollow noopener">github.com/llvm/llvm-proj… [^2]: #L5009" target="_blank" rel="nofollow noopener">github.com/llvm/llvm-proj…
日本語
0
0
1
40
ころころゴロリ
@xTc0uupEdQd3bbU foo1が選ばれるのは、単純にシンボル名のアルファベット順だから、のようです。後、別モジュールにある場合は、マージするためにLTOが必要です。#L985-L1007" target="_blank" rel="nofollow noopener">github.com/llvm/llvm-proj…
日本語
1
0
1
27
ころころゴロリ
ころころゴロリ@k0mkc·
CIのclippy checkで毎回15分かかってるので何かと思ったらz3をビルドしていたらしい
日本語
0
0
0
50
ころころゴロリ
ころころゴロリ@k0mkc·
滅多にお目にかかれない11万行のRust関数
ころころゴロリ tweet media
日本語
1
0
1
75
ころころゴロリ
ころころゴロリ@k0mkc·
特にISLEはREP prefixを持つ命令などの命令選択が非常に得意じゃない(そもそもSelectionDAGと比べて設計思想が違うけど)
日本語
0
0
0
43
ころころゴロリ
ころころゴロリ@k0mkc·
Cranelift ISLEに限界を感じてきたので、DAGベースの命令選択を考えることを検討し始めた
日本語
1
0
0
46
ころころゴロリ
ころころゴロリ@k0mkc·
まさかの他にもCranelift(ISLE)について言及されている方いて感動🤣
日本語
0
0
1
59
ころころゴロリ
ころころゴロリ@k0mkc·
クソコードを排除したら、かなりよくなった
ころころゴロリ tweet media
日本語
0
0
0
49
ころころゴロリ
ころころゴロリ@k0mkc·
Ext-TSPとMachine Function Passesを実装してからCompilerがやたら重くなったので、tracing-chromeで計装を実装したら、思いのほか酷いな
ころころゴロリ tweet media
日本語
2
0
0
153
ころころゴロリ retweetledi
Trail of Bits
Trail of Bits@trailofbits·
Algebraic simplifiers can't handle bitwise logic. Boolean minimizers can't handle arithmetic. CoBRA bridges both by fingerprinting expression structure on Boolean inputs, then reconstructing the simplest equivalent. blog.trailofbits.com/2026/04/03/sim…
English
0
7
19
2.2K
ころころゴロリ
ころころゴロリ@k0mkc·
この適当なMachine Function(元)がすごいことになった
ころころゴロリ tweet media
日本語
0
0
0
61
ころころゴロリ
ころころゴロリ@k0mkc·
これを実装するために、Machine Functionのデータ構造の根本的なリファクタリングが必要だった。特にregalloc3の出力がDense Indexなので、これを中間的に処理するレイヤを追加しないといけないのがしんどい。
日本語
1
0
0
82
ころころゴロリ
ころころゴロリ@k0mkc·
RustでExtended-TSPに基づいた基本ブロックレイアウトを試験運用としてコンパイラに実装した。 事前に計算した静的なヒューリスティックに基づいたプロファイル(e.g., ループバックエッジ)を入力として、ブランチごとに重みを定義する。
ころころゴロリ tweet media
日本語
1
0
1
153
ころころゴロリ
基本ブロックのレイアウトから飛び出して関数そのものの配置についてなら、[大規模データセンタ応用のための機能配置の最適化]: jglobal.jst.go.jp/detail?JGLOBAL… (自分の認識では、LLVM BOLTの前の世代なのかな)
日本語
1
0
0
134