【问题标题】:Is there a -ffast-math flag equivalent for the Visual Studio C++ compiler是否有与 Visual Studio C++ 编译器等效的 -ffast-math 标志
【发布时间】:2014-12-14 12:33:12
【问题描述】:

我正在使用带有 /Ox (Full Optimization) 标志的 Visual Studio 2013 附带的默认 C++ 编译器(我猜它被称为“Visual Studio C++ 编译器”)。由于浮点副作用,我必须在使用gcc 编译器时禁用-ffast-math 标志。在 Visual Studio C++ 编译器的配置中是否有此标志的等效选项?

【问题讨论】:

  • 请注意,在 gcc 中禁用 -ffast-math 意味着不传递该选项,它更像是“不启用”。

标签: gcc visual-studio-2013 compiler-optimization fast-math


【解决方案1】:

您正在寻找/fp:precise,尽管这也是默认设置。

如果您需要 VS 可以提供的最严格的浮点计算,请尝试 /fp:strict,尽管这可能有点矫枉过正。

您可能无需担心,因为默认行为应该是您想要的。只需确保未指定 /fp:fast,但如果您尝试同时使用 /fp:fast/fp:precise 进行编译,无论如何都会出现编译错误,因此应该很容易发现。

Hans Passant 提供给MSDN website 的链接提供了您可能想要的所有详细信息。

【讨论】:

    【解决方案2】:

    没有一个 MSVC++ 选项启用由 g++ -ffast-math 调用的优化。

    【讨论】:

    • 你确定吗? /fp: 怎么样?
    • Microsoft /fp:fast 不会调用这些优化。您可能会对相互冲突的 Intel C++ 用法感到困惑,其中 fast=2 的操作类似于 g++ -ffast-math(并且 fast=1 调用重要的,除了复杂的有限范围)。
    • 显然它可能不完全相同,但它确实指定了浮点运算行为这是 OP 要求的。他没有询问所有-ffast-math 的副作用
    • -ffast-math 是否包含在 GCC 的 -O3 中?因为在我的项目 (Image Convolution) 中,MSVC 2015 生成的代码似乎比 GCC 7.1 快得多。
    • 不,。 -O3 不设置 -ffast-math。
    猜你喜欢
    • 2010-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-03
    • 2015-09-01
    • 2013-05-06
    相关资源
    最近更新 更多