2013-10-15 112 views
3

我試過/ Qvec-report:2選項來查看MSVC自動矢量化器是否有用。不幸的是,我沒有得到任何結果,正面的也不是負面:爲什麼會/ Qvec-report:2什麼都不返回? (MSVC 2012)

> 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' 
+0

不知道 - 對於我/ QVec和/ QPar都可以。我看到這是一個發佈版本,這是正確的。你建造或重建? –

+0

建立,重建,切換到x64 - 作爲渡渡鳥死亡。 – MSalters

+0

它應該默認進行矢量化,但是如果相關的話(我的項目都有),你可以嘗試添加/ QPar。 –

回答

5

消息的原因竟然是該/GL選項。使用鏈接時代碼生成,編譯步驟僅僅是一個解析步驟,並不包含任何矢量化。由於該步驟完全缺失,編譯時不會生成報告(正面或負面)。

鏈接器現在可以發出矢量化步驟。即使將LTCG對象文件放置在庫中,也會發生這種情況。