MSVC#pragma优化参数示例

MSVC#pragma优化参数示例,c,optimization,visual-c++,C,Optimization,Visual C++,有谁能给我举一个例子,告诉我如何使用#pragma optimize(“某些_值_for _02”,on)来模拟选中几个函数的全局02优化 我已经在msdn文档中查看过了,这是迄今为止我看到的最好的一个: 不过,这个答案的链接不再活跃 语法是什么样子的?我是否需要使用多个杂注来模拟02优化?链接的答案提到试图添加#pragma inquired和#pragma auto_inline 如果你能给我指一下《野生资源》,我可以把它作为一个例子来阅读,它也可以起作用 谢谢/O2=/Og/Oi/Ot/

有谁能给我举一个例子,告诉我如何使用#pragma optimize(“某些_值_for _02”,on)来模拟选中几个函数的全局02优化

我已经在msdn文档中查看过了,这是迄今为止我看到的最好的一个:

不过,这个答案的链接不再活跃

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

如果你能给我指一下《野生资源》,我可以把它作为一个例子来阅读,它也可以起作用


谢谢

/O2
=
/Og/Oi/Ot/Oy/Ob2/GF/Gy
。逐步:

  • /Og
    ::

    /Og已被弃用。这些优化现在通常默认启用

    ~>不在乎。无论如何:

    可以使用optimize pragma和g选项逐个启用或禁用全局优化


  • /Oi


  • /Ot


  • /Oy


  • /Ob2

    编译器将内联扩展选项和关键字视为建议。不能保证任何函数都将以内联方式展开。可以禁用内联扩展,但不能强制编译器内联特定函数,即使在使用_forceinline关键字时也是如此

    ~>不在乎


  • /GF
    不知道。

  • /Gy
    不知道。


最终结果:

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

最后一件事:为什么???

我更新了你链接的问题答案中的链接。我不想用几十年的遗留代码影响整个项目,但我在一个单独的线程上添加了一个ISR,该线程每分钟运行数百万次,我想最小化指令集或更重要的是减少执行时间。
#pragma intrinsic(_disable, _outp, fabs, strcmp, _enable, _outpw, labs, strcpy,
                  _inp, _rotl, memcmp, strlen, _inpw, _rotr, memcpy, _lrotl,
                  _strset, memset, _lrotr, abs, strcat)
#pragma optimize("t", on)
#pragma optimize("y", on)
#pragma intrinsic(_disable, _outp, fabs, strcmp, _enable, _outpw, labs, strcpy,
                  _inp, _rotl, memcmp, strlen, _inpw, _rotr, memcpy, _lrotl,
                  _strset, memset, _lrotr, abs, strcat)
#pragma optimize("gty", on)