次にrustcによるLLVM IR生成
$ rustc -C opt-level=2 --emit llvm-ir -o fibonacci_rs.ll fibonacci.rs
そのうちfibonacci()関数部分を抜粋すると以下のコードとなった
; fibonacci::fibonacci
; Function Attrs: nofree nosync nounwind nonlazybind memory(none) uwtable
define internal fastcc noundef i32 @_ZN9fibonacci9fibonacci17h1af4b62ef57b502cE(i32 noundef %n) unnamed_addr #4 {
start:
%switch1 = icmp ult i32 %n, 2
br i1 %switch1, label %bb8, label %bb5
bb5: ; preds = %start, %bb5
%n.tr3 = phi i32 [ %_7, %bb5 ], [ %n, %start ]
%accumulator.tr2 = phi i32 [ %0, %bb5 ], [ 0, %start ]
%_5 = add i32 %n.tr3, -2
; call fibonacci::fibonacci
%_4 = tail call fastcc noundef i32 @_ZN9fibonacci9fibonacci17h1af4b62ef57b502cE(i32 noundef %_5)
%_7 = add i32 %n.tr3, -1
%0 = add i32 %_4, %accumulator.tr2
%switch = icmp ult i32 %_7, 2
br i1 %switch, label %bb8, label %bb5
bb8: ; preds = %bb5, %start
%accumulator.tr.lcssa = phi i32 [ 0, %start ], [ %0, %bb5 ]
%n.tr.lcssa = phi i32 [ %n, %start ], [ 1, %bb5 ]
%accumulator.ret.tr = add i32 %n.tr.lcssa, %accumulator.tr.lcssa
ret i32 %accumulator.ret.tr
}
clangの場合>>357とは異なり「call」によるfibonacci()呼び出しが一つとなり最適化されている
Qiita 3 - キータぞ、来たぞ、キータだぞー
■ このスレッドは過去ログ倉庫に格納されています
358デフォルトの名無しさん
2023/08/24(木) 08:33:36.30ID:jcLl4hPI■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【簗和生農水相】「私が取ってきた予算をなんで受注」 釈明会見後に“地元紙”が音声公開...「恫喝」批判が止まらない [煮卵★]
- 【競馬】凱旋門賞 ダリズが連覇! 武豊が騎乗した日本馬・メイショウタバルは14着 アドマイヤテラは11着 [冬月記者★]
- ヒコロヒー 新幹線でカレーや肉まん等ニオイの強いもの食べる問題に「食べていいというルールになっている以上、ある程度仕方ないよね」 [muffin★]
- 副首都構想 広島は人口要件満たさず 横田知事が国に意見表明へ [首都圏の虎★]
- 大谷翔平が吐露…「自分のなかでもあまりよくない年の一つ」「WBCがあるとすごく長く感じる」★2 [王子★]
- 【サッカー】AFCがネーションズリーグ創設を検討…W杯もしくはアジアカップ予選を兼ねる形式、2030年から開催か [ゴアマガラ★]
- 【実況】博衣こよりのえちえち夜釣りゆる凸待ち🧪★2
- は じ め て の
- 明日の無職を頑張る人たちのお🏡
- 【悲報】おじさん、ビール売り子から買ったビールをそのまま捨てまくるwwwwwwwwwwwwwwwwwww [398059782]
- 寿命が縮まるコーラ新発売 ドンキ限定 Z世代「これ飲んで早く死にたい」
- 『天音かなた』というvtuberについて