Visual Studio 2008 Part 22at TECH
Visual Studio 2008 Part 22 - 暇つぶし2ch277:デフォルトの名無しさん
18/09/17 01:07:41.74 +dwRu2dr.net
>>262(続き)
これは少なくとも「ループ回数が8の倍数である」事がコンパイラに見えないと出来ない最適化だ。
そうでなければ、例えばループ回数が6回や14回の時に、
最初の1回だけ 0299 に飛び込んで始める(頭の2回をスキップする)コードが必要になるが、
それは出てないだろ。
(そもそもこのアンローリングがx86的に意味があるのかも疑問だが)
一般的に、可変回数ループを展開すると、必ず上記の端切れ処理(キリが良くないときの処理)が必要になる。
だから「可変」だと確定しているのなら普通は展開しない。
つまり、一般的には、別関数でループ回数が引数で与えられてたら、その最適化はかからない。
今回ヒットするデータが偶々16回ループだっただけで、
俺の本番コードは可変で用いている為、
このようなアンローリングはされてない。(と思ってる。ただし265の通りもう一度確認必要)
こちらではデフォでそこまで最適化がかからないのでそちらの状況はよく分からないが、
その最適化がかかってるのなら、俺の本番コードとは違う状況で動いていることになる。(はず)
だから俺はその最適化がかからない範囲で議論してる。
それが俺が最初から別関数にしてた理由。(というか元のコードが別関数だからだが)

てゆうかマジでそれデフォのままか?
もしかして俺の環境がおかしくて、全く最適化されてないコードが出てる?


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch