如何使 clang 编译为 llvm IR

2023-11-30

我希望 clang 将我的 C/C++ 代码编译为 LLVM 位代码而不是二进制可执行文件。我怎样才能做到这一点?

如果我有 LLVM 位代码,如何进一步将其编译为二进制可执行文件?

我想在编译为二进制可执行文件之前将一些我自己的代码添加到 LLVM 位代码中。


给定一些 C/C++ 文件foo.c:

> clang -S -emit-llvm foo.c

生产foo.ll这是一个 LLVM IR 文件。

The -emit-llvm选项也可以直接传递给编译器前端,而不是通过以下方式传递给驱动程序-cc1:

> clang -cc1 foo.c -emit-llvm

生产foo.ll和他们的。-cc1添加了一些很酷的选项,例如-ast-print。查看-cc1 --help更多细节。


要将 LLVM IR 进一步编译为汇编,请使用llc tool:

> llc foo.ll

生产foo.s与程序集(默认为您运行它的机器架构)。llc是 LLVM 工具之一 -这是它的文档.

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

如何使 clang 编译为 llvm IR 的相关文章

随机推荐

  • 异步 https firebase 函数

    HTTPS 函数是否应该像实时函数那样返回异步承诺 我们还没有返回 HTTPS 函数 仅使用 res status send 等 而且看起来 firebase function samples 也没有返回 但文档有点含糊https fire
  • 从 Excel 调用具有多个参数的存储过程

    我已经建立了 SQL Server 与存储过程所在数据库的连接 存储过程在 SQLServer 中运行良好 存储过程通过与 Excel 中的硬编码参数的连接运行得很好 我得到了我的数据集并将其插入到我的电子表格中 宏不起作用 在宏中 我尝试
  • 如何将 YAML 拆分为多个具有正确名称的文件

    我有一个有效的 YAML name first metadata a name second metadata b name third metadata c 如何在文件中使用单行 AWK 脚本拆分它first yaml second ya
  • 如何在 TypeScript 中索引对象类型?

    我的应用程序收到 消息 我首先验证未知输入以确保它遵循预期的消息格式 const isMessage x gt typeof x object x null typeof x data string 我希望在 TypeScript 中输入此
  • 按字母数字顺序对一组 li 标签进行排序

    我一直在尝试获得一个功能 可以按内容对 li 标签的选择进行排序 但目前无济于事 至少没有速度 准确性 sortasc live click function var liArr Array licontainer children li
  • 错误:运行帖子时标题检查不正确

    我需要从休息调用中获取zip 为了模拟 我使用具有二进制选项的邮递员进行发布 并添加一个带有文件夹和html文件的小zip文件 在模拟期间 我想使用express获取数据并提取zip并放入C盘下的某个文件夹 目前 当我运行以下程序时 这是我
  • 仅在提交时进行 AngularJS 验证

    我想在我的 AngularJS 应用程序中实现一些简单的表单验证 但我不希望它在用户单击表单提交按钮之前显示任何验证错误 我不希望它在我输入时甚至退出字段时进行验证 有没有办法做到这一点 我需要至少编写一个自定义验证器指令 因此它需要与之配
  • 有人能让这个自定义的 AlertDialog 真正起作用吗?

    我问了另一个关于自定义 AlertDialog 的问题here 然后我点击了这个自定义的AlertDialog 发现here import android app AlertDialog import android content Con
  • 如何使用 C# 获取 Excel 下拉列表中的值

    我正在寻找打开和读取 Excel 文件的代码 任何版本的 Excel 包括 2010 我的其中一列有一个下拉菜单 我需要获取下拉列表中所选项目的值 我最终希望将这些值填充到业务对象中 如果有人有一些代码可以分享 请告诉我 我正在使用 C 和
  • 使用VLC的虚拟界面时如何防止显示控制台

    我正在尝试从 Node js 服务器脚本以 虚拟 模式启动 VLC 但是使用child process spawn vlc I dummy 使用 Windows 时 为 VLC 的输出生成一个新的控制台窗口 有没有办法防止这种情况发生并强制
  • 基于文本输入字段创建动态链接

    我正在尝试创建一个文本输入字段 访问者可以在其中输入值 然后单击 执行 或 提交 根据数字 它们将被发送到新页面 例如 如果他们输入 123 并点击提交 则会将他们发送至http www example com page 123 有人可以帮
  • 过滤 OData 中的扩展实体

    如何对 OData 中的扩展实体应用过滤条件 假设我有主实体作为home有字段 homeId StateId CountyID Address 和子实体state as StateId StateName and county as Cou
  • 在 python 中将声音从网站转换为文本

    如何将网站上的声音转换为文本 当我单击网站中的按钮时会播放声音 但我的问题是如何在不使用麦克风的情况下将其转换为文本 仅使用网站和 python import speech recognition as sr r sr Recognizer
  • 回发或初始请求期间的 ASP.NET 事件顺序

    我能否从社区得到一些确认 证明我不会发疯 并且回发期间页面的生命周期实际上与最初请求页面时的顺序不同 如果是这种情况 我们将非常感谢指向概述顺序的参考文献 文章 回发相当于页面生命周期图像会很好 行为略有不同 但顺序相同 在这方面 回发 本
  • java.lang.ClassNotFoundException

    我正在开发一个 java 项目 该项目直到几天前才开始工作 我不确定我对 Eclipse 设置做了什么来控制它 但现在当我尝试运行一些访问 google Finance api 的代码时 我收到了 java lang ClassNotFou
  • 根据下拉列表选择从数据库填充另一个选择下拉列表

    我正在构建一个网站来学习编码 并尝试构建一个工具 用户可以在其中单击包含从数据库中提取的一些类别名称的选择 下拉菜单cat然后将出现另一个选择 其中包含从数据库中提取的子类别名称subcat 这几乎和 Yelp 的一模一样 进入类别 就像
  • 加载多种消息类型的设计模式

    当我浏览时 我遇到了一个关于处理多种消息类型 我关心的是 如何以简洁的方式加载这样的消息 我决定创建一个单独的类 其中的方法每次调用时都会加载一条消息 此方法应创建具体消息类型 例如 AlphaMessage BetaMessage Gam
  • C 编译器错误中的“需要左值”是什么意思? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 include
  • 如何在代码中配置我的Windows服务来访问桌面?

    我创建了一个Windows服务 我想从该服务打开一些基于 Windows 的应用程序 但我的 Windows 服务无法启动桌面应用程序 要启用访问权限 我必须执行以下步骤 打开管理工具 服务 右键单击我的服务并选择 属性 然后在 登录 选项
  • 如何使 clang 编译为 llvm IR

    我希望 clang 将我的 C C 代码编译为 LLVM 位代码而不是二进制可执行文件 我怎样才能做到这一点 如果我有 LLVM 位代码 如何进一步将其编译为二进制可执行文件 我想在编译为二进制可执行文件之前将一些我自己的代码添加到 LLV