4

/Qvec-report:2 オプションを試して、MSVC 自動ベクトライザーが役に立つかどうかを確認しました。残念ながら、肯定的または否定的な結果は得られませんでした。

>  Microsoft (R) C/C++ Optimizing Compiler Version 17.00.60610.1 for x86
1>  Copyright (C) Microsoft Corporation.  All rights reserved.
1>  
1>  cl /c /Zi /nologo- /W3 /WX- /O2 /Ob2 /Oi /Oy /GL /D WIN32 /D _SCL_SECURE_NO_WARNINGS /D _CRT_SECURE_NO_WARNINGS /D NDEBUG /D _LIB /D _UNICODE /D UNICODE /Gm- /EHsc /MD /GS /Gy /arch:SSE2 /fp:fast /Zc:wchar_t /Zc:forScope /Yu"stdafx.h" /Fp"Release\(redacted).pch" /Fo"Release\\" /Fd"Release\vc110.pdb" /Gd /TP /analyze- /errorReport:prompt  /Qvec-report:2 (redacted).cpp
1>cl : Command line warning D9035: option 'nologo-' has been deprecated and will be removed in a future release
1>  
1>  (redacted).cpp
1>
1>Build succeeded.

次のようなメッセージを期待していました

--- Analyzing function: main 
c:\source.cpp(4) : loop vectorized 
c:\source.cpp(5) : loop not vectorized due to reason '1200'
4

2 に答える 2

5

/GL原因はオプションであることが判明しました。リンク時のコード生成では、コンパイル ステップは単なる解析ステップになり、ベクトル化は含まれません。そのステップが完全に欠落しているため、コンパイル時にレポート (肯定的または否定的) は生成されません。

リンカーは、代わりにベクトル化ステップを発行できるようになりました。これは、LTCG オブジェクト ファイルがライブラリに配置されている場合でも発生します。

于 2013-10-15T12:28:32.800 に答える