[過去ログ] Qiita 3 - キータぞ、来たぞ、キータだぞー (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
12: デフォルトの名無しさん [sage] 2023/06/01(木) 18:26:51.30 ID:79nAyLjp(1) AAS
>>10@D_D
「存在措定」の使い方が間違っている。人の不勉強を窘める文章でこういう間違いがあると説得力が激減するから、もうちょっと勉強してから使った方がいいと思うな。
↓
@saetegaljewp
本記事における存在措定の使い方は間違っていない
↓
@D_D
んまぁそう、よく分かんなかったです…
37(2): デフォルトの名無しさん [sage] 2023/06/13(火) 18:09:44.30 ID:NjeMwHVS(4/8) AAS
> C99以降ではOKってことは現在はOKでは?
この部分にまったく反応しないやつで明らかに別人
Cにまったく興味ないだろw
ファンでしかない
167: デフォルトの名無しさん [] 2023/07/09(日) 04:25:47.30 ID:Dp30TfKY(2/2) AAS
確信犯的な嘘を量産して検索上位に埋め尽くせば、初級者を間違った方向に誘導できるからな。
検索エンジンベースのAIを賢くさせないだけでなく、人間もまた芽は早めに摘んでおく草の根活動だな。
ようやるわな、としか思わんw
229: デフォルトの名無しさん [sage] 2023/07/26(水) 21:47:14.30 ID:lkScsrJu(1) AAS
いやいやそもそも御本尊のキー太がね
検索結果のど真ん中に野糞置く教えだから
358(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の場合>>357357(1): デフォルトの名無しさん [sage] 2023/08/24(木) 08:31:12.59 ID:jcLl4hPI(1/3) AAS
こちらでも 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よりも遅いのはこれで納得
とは異なり「call」によるfibonacci()呼び出しが一つとなり最適化されている
541: デフォルトの名無しさん [sage] 2023/11/28(火) 15:24:06.30 ID:8GQlPBVU(3/3) AAS
>>540何秒前まで覚えてられる?w
760(1): デフォルトの名無しさん [sage] 2023/12/14(木) 13:43:48.30 ID:qE3AElg+(1) AAS
ていうか現にElixirだと捌ききれなくてRustで書き直したという事例がそこにあるわけだがいつまで机上の空論を支えにしてるんだ
772(2): デフォルトの名無しさん [sage] 2023/12/14(木) 17:34:30.30 ID:H9fFRRYE(1) AAS
>>753非同期プログラミングどころかネットワークプログラミングすらしたことのない子供が暴れてるのか?
まずネットワーク通信はOSにより抽象化されているためプログラムで通信デバイスを直接操作したり待つことはない
次に古典的なブロッキング同期でマルチスレッドを使う単純な方法でもlisten/accept専用スレッドはacceptするとすぐに別スレッドに任せてその別スレッドが通信を行なう
プログラミングをしたことのない子供だから知らないのか?
893: デフォルトの名無しさん [sage] 2023/12/30(土) 05:03:19.30 ID:Px5PMP0A(1) AAS
Feedlyなつい
RSSってまだ生きてたんだ
934: デフォルトの名無しさん [sage] 2024/01/03(水) 16:21:27.30 ID:5JSJz+l4(1) AAS
Rustを使うことでバグが減るんだから使わない理由がないわな
954: デフォルトの名無しさん [sage] 2024/01/07(日) 12:43:50.30 ID:JEhUY97M(1) AAS
そんな寝言が通るかよw
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.044s