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