MSVC #pragma优化参数示例

时间:2019-02-26 06:18:25

标签: c optimization visual-c++

任何人都可以将我链接到一个示例,该示例如何使用#pragmaoptimize(“ some_values_for_02”,on)来模仿某些函数的全局02优化。

我在msdn文档和SO中四处查看,这是迄今为止最好的ive: In VC++ what is the #pragma equivalent of /O2 compiler option (optimize for speed)

该答案的链接不再有效。

语法是什么样的?我是否需要使用多个#pragmas来模拟02优化?链接的答案提到尝试添加#pragma intrinsic#pragma auto_inline

如果您可以指出我的原始资料,那么我可以作为一个示例进行阅读,该例子也可以使用。

谢谢

1 个答案:

答案 0 :(得分:1)

myChart == my_chart。逐步:

  • /O2Global Optimizations

      

    / Og已过时。现在通常默认情况下启用这些优化

    〜> 不在乎。无论如何:

      

    您可以结合使用优化编译指示和g选项启用或禁用全局优化。

    /Og /Oi /Ot /Oy /Ob2 /GF /Gy


  • /Ogintrinsic

    #pragma optimize("g", on)
    


  • /Oioptimize

    #pragma intrinsic(_disable, _outp, fabs, strcmp, _enable, _outpw, labs, strcpy,
                      _inp, _rotl, memcmp, strlen, _inpw, _rotr, memcpy, _lrotl,
                      _strset, memset, _lrotr, abs, strcat)
    


  • /Otoptimize

    #pragma optimize("t", on)
    


  • /Oy Inline Function Expansion

      

    编译器将内联扩展选项和关键字视为建议。不能保证任何功能都可以内联扩展。您可以禁用内联扩展,但是即使使用__forceinline关键字,也不能强制编译器内联特定功能。

    〜> 不在乎。


  • #pragma optimize("y", on) 不知道。

  • /Ob2不知道。


最终结果:

/GF

最后一件事:为什么?