将所有源文件一次传递给编译器有什么好处吗?

2023-11-25

我读过“整个程序优化”(wpo)和“链接时间代码生成”(ltcg)。

我想知道如果我将所有源代码从 cli 一次性传递给编译器(如“g++ a.cpp b.cpp”),是否会进行更多模块间分析? 或者这只是启用这些标志之一?

编译器之间对此有区别吗? 例如,英特尔编译器可以从这种做法中受益,而其他编译器则不能吗?


我想知道如果我将所有源代码从 cli 一次性传递给编译器(如“g++ a.cpp b.cpp”),是否会进行更多模块间分析?

对于 GCC,不,这样做不会启用任何 WPO,每个翻译单元都是单独、隔离地处理的。我 99% 确信 Clang 也是如此,并且 90% 确信大多数其他编译器也是如此。

使用 GCC,要启用模块间优化,您需要通过-fltoswitch,它仍然单独处理每个翻译单元,但附加信息被写入目标文件,然后当它们链接在一起时,会进行进一步的优化以产生最终输出。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将所有源文件一次传递给编译器有什么好处吗? 的相关文章

随机推荐

  • 为什么 Array 不重写 Ruby 中的三等号方法?

    我刚刚注意到数组不会覆盖三重等号方法 有时称为大小写相等法 x 2 case x when 1 2 3 then match else no match end gt no match 而范围运算符的作用是 x 2 case x when
  • 芹菜中的 Django 信号

    我有一个在 Celerybeat 实例中运行的任务 当执行该任务时 它有时会修改模型对象 这应该会触发 post pre save 信号 但事实并非如此 信号没有发生 我想这是因为 Django 的信号是同步的 而 celery 正在不同宇
  • Java 接口有什么真正的意义吗? [复制]

    这个问题在这里已经有答案了 可能的重复 Java接口实际上是如何使用的 我不是从学术流行语的角度来谈论 而是从实际开发人员的角度来谈论 举个例子 Class1 implements Interface public String metho
  • Twilio 调用在 iOS 和 Android 中的 React-Native 中不起作用

    i am trying to use twilio client in react native app here is the link Twilio repo after done all setup with react native
  • PHP 无法从 NFS 共享读取会话

    我将 PHP 会话文件存储在 NFS 共享上 问题是 PHP 总是创建一个空会话文件 但无法从中读取 写入 因此对于每个页面重新加载都会创建一个新文件 如果我将会话存储路径移动到本地文件夹 会话将正常保存 另外 我正在运行具有相同配置的另一
  • JAXB 2.1 - 自定义 xs:any 绑定

    我想使用 JAXB 2 1 XJC 从 xsd 生成 java 代码 我提供了 xsd 架构 但无法更改它 我想用xjc 简单模式 同时从 xml 模式生成 java 类 在xsd中有元素
  • 将 GTK3+ 与 py2exe 捆绑在一起

    平台是 Windows 7 64位 使用 python 2 7 和 GTK3 安装http sourceforge net projects pygobjectwin32 files source navbar exe已编译但无法运行 原因
  • 为什么 PHP 中不推荐通过引用调用函数?

    我写了以下代码
  • try 和 catch 中的对象声明未在范围内定义

    我想在 try catch 语句中声明一个对象 如下所示 try Object object value catch exception return 1 object usingExemple G 告诉我对象未在范围内定义 我确实明白 如
  • 为共享库文件(*.so)生成头文件(*.h)

    我有共享库文件 libmylib so 但没有头文件 mylib h 为了它 您知道从共享库文件生成此头文件的一些方法 工具吗 这通常是不可能的 因为 so 文件不包含有关参数列表的足够信息 特别是如果使用非标准类型 例如结构 因为类型信息
  • Android WebView err_unknown_url_scheme

    使用下面的简单代码 我可以正确加载我的网址 但是 当尝试点击以开头的 html 链接时 我收到 ERR UNKNOWN URL SCHEME mailto 微信 and tg 电报 有人可以帮我解决这个问题吗 不幸的是我根本不懂Java T
  • 如何在 Jersey 2.4 过滤器中获取资源注释?

    我的问题本质上与这个问题相同 如何在 Jersey ContainerResponseFilter 中获取资源注释 但我使用的是 Java Jersey 2 4 找不到 ResourceFilterFactory 或 ResourceFil
  • 如何让 C# 中的进程(而不是线程)同步文件系统访问

    今天早些时候 我正在调试一些类似这样的东西 class Foo void AccessCriticalSection try if IO File Exists path to lock txt throw new Exception Sy
  • 如何在flutter中使用where和orderby

    如何在flutter中使用where和orderBy 任何人都可以告诉我这些索引是如何工作的以及如何正确创建它们 Query query Firestore instance collection clients where sequenc
  • Xamarin MvvmCross Android 防止后退按钮返回到上一个视图

    我正在尝试为以下情况创建一个简洁的解决方案 我构建了一个需要凭据来验证用户身份的应用程序 每当 API 想要重新验证用户身份时 我想强制用户返回登录视图 此功能效果很好 但是当用户按下设备上的后退按钮时 会显示上一个视图 我希望看到当用户按
  • Lateinit 属性数据尚未初始化

    使用 Retrofit2 和 rxjava2 未在 Recyclerview 中设置 Gson Convertable 数据 然后通过其订阅给出错误 UninitializedPropertyAccessException lateinit
  • 如何从文本中删除所有 a href 标签

    我有一个脚本来替换 href 标签中的单词 不过 我想完全删除 a href 这样您就可以看到没有链接的 Google 一词 from BeautifulSoup import BeautifulSoup soup BeautifulSou
  • 如何在 JSON 响应 ASP.NET Core 中关闭或处理驼峰命名法?

    我正在学习有关 ASP NET Core Web API Angular 2 的 WintellectNOW 课程 我已经实现了 API 部分 但无论出于何种原因 返回的 JSON 的变量名称都是小写的 返回的 JSON 格式如下 id 1
  • 测试点是否在某个矩形内

    我有一大堆矩形 它们的大小都相同 我正在生成不应该落在这些矩形中的随机点 所以我想要做的是测试生成的点是否位于其中一个矩形中 如果是 则生成一个新点 使用 R 树似乎可行 但它们实际上适用于矩形而不是点 我可以使用 R 树算法的修改版本 该
  • 将所有源文件一次传递给编译器有什么好处吗?

    我读过 整个程序优化 wpo 和 链接时间代码生成 ltcg 我想知道如果我将所有源代码从 cli 一次性传递给编译器 如 g a cpp b cpp 是否会进行更多模块间分析 或者这只是启用这些标志之一 编译器之间对此有区别吗 例如 英特