[過去ログ] Qiita 3 - キータぞ、来たぞ、キータだぞー (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
3: デフォルトの名無しさん [sage] 2023/05/28(日) 17:34:00.60 ID:utiwSz8y(1) AAS
zuishin
301(1): デフォルトの名無しさん [sage] 2023/08/12(土) 17:51:13.60 ID:yNBhBfdR(1) AAS
>>299299(1): デフォルトの名無しさん [sage] 2023/08/12(土) 16:55:33.58 ID:dxjaE8PG(1) AAS
プロセッサに依存していいならどう最適化されるか決まってないCよりアセンブラ使う方が確実だぞ
CMOV命令はintelにもamdにもあるから一般的な環境でプロセッサ依存ではないですよね
もしCMOVがない特殊な環境でも条件フラグをレジスタに入れる命令があればそれが使われて大丈夫ですね
gccとclangどちらでも速くなったようだからコンパイラ処理系依存のテクニックではなさそう
C言語だけでなくRustでも同じ生成コードとなったから言語に依存したテクニックでもなさそう
360: デフォルトの名無しさん [sage] 2023/08/24(木) 13:00:39.60 ID:LKMQI7nB(1/3) AAS
で、それぞれの実行時間は?
うちでは clangもrustcも>>358358(2): デフォルトの名無しさん [sage] 2023/08/24(木) 08:33:36.30 ID:jcLl4hPI(2/3) AAS
次に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()呼び出しが一つとなり最適化されている
相当の.llを吐くけど実行したらgccより激遅い
444: デフォルトの名無しさん [sage] 2023/10/27(金) 17:24:18.60 ID:7qB59KoX(1) AAS
トレンド記事の編集履歴見たら投稿日の1ヶ月前から編集履歴があるんだがどういうこと
534(1): デフォルトの名無しさん [sage] 2023/11/27(月) 14:19:22.60 ID:IlLTvi+q(1) AAS
>>533533(1): デフォルトの名無しさん [sage] 2023/11/27(月) 11:03:17.22 ID:q3KP0iFC(1) AAS
Javaの記事とか嘘多すぎてChatGPTがそれを信じて嘘を言うからな
JavaだっていうのにJavaScriptの話を始めるし配列がIterableを実装してるとか平気で言うし
それ別にキータだけのせいじゃないし
623(1): デフォルトの名無しさん [sage] 2023/12/05(火) 06:42:34.60 ID:Cw6vkTwt(1/2) AAS
なぜそんなアホなことをしなきゃいけないんだw
各種言語のライブラリを作ってるのはたいていラジアン派だがお前のようなアホは一人もいないぞ
669: デフォルトの名無しさん [sage] 2023/12/06(水) 23:02:30.60 ID:8JqK4Yrt(1) AAS
>>666効いてて草
863: デフォルトの名無しさん [sage] 2023/12/17(日) 15:42:15.60 ID:4oY8H79R(3/5) AAS
システム全体をシャットダウンせずソフトウェアを実行できるって普通じゃん
まさかそのために速度を犠牲にしてんの?
他の言語は犠牲にせずできるのに?
958: デフォルトの名無しさん [sage] 2024/01/07(日) 20:35:02.60 ID:7hoCONB7(2/2) AAS
>>950嫌なら見なければいいだけだぞw
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 2.130s*