次に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■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 ★4 [蚤の市★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★5 [七波羅探題★]
- 【速報】 米トランプ政権声明 「中国が台湾を奪おうとする、いかなる試みも阻止する」 中国「レッドラインだ」 ★2 [お断り★]
- 元プロ野球選手・堂上隼人(43)を20代女性2人へのわいせつ未遂容疑で8回目の逮捕…これまでの被害者は10代・20代の女性11人に [Anonymous★]
- 【高校野球】なぜ『7回制』は反対多数でも止まらないか… 高野連が「全員の命」守るために貫く伝統より改革の姿勢 [冬月記者★]
- 「残業キャンセル界隈」若者が増加?「職務放棄」との批判も…“定時退社の権利”どこまで通用するか [七波羅探題★]
- 日本人が再び飲食店で働くようになるために必要なことってなんだと思う? [663277603]
- 【高市悲報】自衛隊「実は事前に現場海域で中国軍から空母での発着訓練をすると通告がありました」え…?😨😨 [931948549]
- 【高市速報】中国「このままだと日本が先制攻撃してくる」 [583597859]
- AI「その画像AIだぞ」AIぼく「そうなんだ助かる」
- 【悲報】山里亮太(南海キャンディーズ)さん [329329848]
- 【なにここ】🏡👊😅👊🏡【すごいなこれ‼】
