Clang 的 LTO 能否跨 C 和 C++ 方法进行优化 [重复]

2023-12-12

如果链接时优化 (LTO) 与clang,代码是否可以跨 C 和 C++ 语言边界进行优化?

例如,C 函数可以内联到 C++ 调用程序中,反之亦然吗?


AFAIK,是的,因为 Clang 生成 LLVM 中间表示,并且 LTO 发生在该 LLVM 字节码上。

顺便说一句,任何一种链接时间优化发生在一些人身上中间的(编译代码的)表示,而不仅仅是机器码 with 搬迁,如保留在每个目标文件。 LTO,无论使用什么表示形式(GCC 中的 GIMPLE,Clang 中的 LLVM)都会添加和使用此类额外信息(这就是目标文件变得更胖的原因)。

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

Clang 的 LTO 能否跨 C 和 C++ 方法进行优化 [重复] 的相关文章

  • 使用 gcc 在 Linux 上运行线程构建块 (Intel TBB)

    我正在尝试为线程构建块构建一些测试 不幸的是 我无法配置 tbb 库 链接器找不到库 tbb 我尝试在 bin 目录中运行脚本 但这没有帮助 我什至尝试将库文件移动到 usr local lib 但这又失败了 任何的意见都将会有帮助 确定您
  • 调用 McAfee 病毒扫描引擎

    我收到客户的请求 要求使用他们服务器上的 McAfee 病毒扫描将病毒扫描集成到应用程序中 我做了一些调查 发现 McScan32 dll 是主要的扫描引擎 它导出各种看起来有用的函数 我还发现提到了 McAfee Scan Engine
  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • 无限循环与无限递归。两者都是未定义的吗?

    无副作用的无限循环是未定义的行为 看here https coliru stacked crooked com view id 24e0a58778f67cd4举个例子参考参数 https en cppreference com w cpp
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • 对类 static constexpr 结构的未定义引用,g++ 与 clang

    这是我的代码 a cp p struct int2 int x y struct Foo static constexpr int bar1 1 static constexpr int2 bar2 1 2 int foo1 return
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite

随机推荐

  • 在保存之前删除不会失效:是真的吗?

    我的情况 我有复杂的 24 个实体 许多关系和许多有序对多关系 模型Core Data 现在假设我有一个实体PlayList和一个实体Song 并在PlayList有序对多关系Song 这种关系存在逆关系 并且两者都有nullify删除规则
  • 计算文件中每一列的平均值

    我有一个包含 n 行 以逗号分隔 和列的文本文件 我想找到每列的平均值 不包括空字段 示例输入如下所示 1 2 3 4 6 7 期望的输出是 2 5 4 5 4 5 我尝试过 awk F for i 1 i lt NF i sum i su
  • C# - 将对象保存到 JSON 文件

    我正在编写一个 Windows Phone Silverlight 应用程序 我想将对象保存到 JSON 文件 我写了下面的代码 string jsonFile JsonConvert SerializeObject usr Isolate
  • 使用批处理运行带有参数的exe

    如何将参数传递到运行 exe 的批处理文件中 我有一个需要 2 个参数的程序 我想使用具有定义参数的 bat 文件运行它 5 五次 像这样的东西 FOR L G IN 1 1 5 DO start path program exe 20 1
  • 为什么 gcc 和 clang 为 std::find 生成这么多代码?

    我在 godbolt org 中输入以下代码 并使用 gcc 10 1 和 clang 10 编译它 include
  • 按键表达式存储静态过滤器

    我有一个函数 当传入一个时 它会生成一个表达式来通过主键过滤表Object 这非常类似于Find函数 只是它没有实现 所以你可以传递一个IQueryable之后周围 public static Expression
  • 使用标头过滤代理响应标头

    我有一个上游服务器 它经常通过返回 Set Cookie 响应标头来设置 Cookie 我想在上游服务器前面有一个 nginx 代理 Browser gt Nginx gt Upstream If the Browser gt Nginx请
  • 引用如何绑定到纯右值?

    cppreference 说 当引用绑定到纯右值时 会创建一个临时对象 它们是指 const 左值引用和右值引用吗 当纯右值具体化时 会创建临时对象 以便将其用作左值 这会在以下情况下发生 C 17 起 将引用绑定到纯右值 如果他们的意思是
  • 使部分(但不是全部)(CUDA) 内存访问不被缓存

    我只是注意到 CUDA 内核 内存访问完全有可能不被缓存 参见例如这个答案在这里 这可以吗 对于单个内核 在运行时而不是在编译时 仅用于写入而不是读取和写入 仅当您单独编译该内核时 因为这是通过代码生成启用的指令级功能 您还可以使用内联 P
  • Python3使用字典替换

    谁能解释一下这里出了什么问题 def get complementary sequence string dic A T C G T A G C for a b in dic items string string replace a b
  • 如何读取 log4j 输出到网页?

    我有一个网页 用于管理目的 它运行一个任务 从远程站点获取图像 为了能够仅使用浏览器而不是 ssh 等来调试任务 我希望能够读取执行线程的所有日志输出并将其吐出到网页 任务归结为 在调用开始时更改当前线程的日志级别 并在调用完成时恢复 读取
  • Hibernate 遇到 mysql := 运算符时出现异常

    当我执行以下代码时 出现异常 Exception org springframework orm hibernate3 HibernateQueryException Not all named parameters have been s
  • 如何在文本框中显示字符串数组

    您好 我是 C 新手 我的第一个 Windows 窗体应用程序遇到问题 我有来自串行端口的数据 并找到了一种处理数据并将其存储到 3 个不同字符串数组中的方法 我无法解决的是如何将数组中的数据显示到它们自己的单独文本框中 我只想显示当前索引
  • 使用实体框架(.edmx 模型)和 Razor 视图创建 MVC3 下拉列表&& 将数据库记录插入多个表

    在阅读了 100 篇有关如何使用 Razor 视图在 MVC 3 中创建下拉列表的文章后 我找不到适合我的情况的文章 情况 我最终试图创建一个视图来将员工添加到数据库中 这是我正在使用的 EDMX 模型的图像 create 将使用的表 目标
  • 如何在多行上打印数组列表?

    我正在学习 MOOC java 课程 并且我被困在练习 76 上 每当我提交答案时 它都会告诉我将每顿饭打印到单独的行 我该怎么做呢 主班 public class Main public static void main String a
  • 是否可以将请求标头添加到 iframe src 请求中?

    据我所知 在 JavaScript 中进行 AJAX 调用时 您可以非常轻松地设置 HTTP 请求标头 但是 通过脚本将 iframe 插入页面时是否也可以设置自定义 HTTP 请求标头 您可以在 JavaScript 中发出请求 设置您想
  • Java InetSocketAddress 类似于 .toString()?

    我正在 InetSocketAddress 上执行 toString 这是 Android websocket 客户端的一部分 迄今为止无法连接到主机 现在变量 address toString 的输出看起来像domain com 72 x
  • 在 POI 中添加带有 quotePrefix 的单元格

    我想在 xlsx 工作簿工作表中添加一个包含引号前缀的单元格 并且我正在尝试使用 POI 库创建该工作表 如何添加这种类型的单元格 我在 Maven Central 上找到了 CTXf setQuotePrefix boolean quot
  • php中匿名接口的实现

    在Java中我们可以这样做 interface Inter public void run class Test public Test Inter inter inter run new Test new Inter Override p
  • Clang 的 LTO 能否跨 C 和 C++ 方法进行优化 [重复]

    这个问题在这里已经有答案了 如果链接时优化 LTO 与clang 代码是否可以跨 C 和 C 语言边界进行优化 例如 C 函数可以内联到 C 调用程序中 反之亦然吗 AFAIK 是的 因为 Clang 生成 LLVM 中间表示 并且 LTO