使用 LLVM C API 生成对内部函数的调用

2024-02-08

我正在编写一些使用 LLVM C API 的代码。如何使用内在函数,例如llvm.cos.f64 or llvm.sadd.with.overflow.i32?每当我尝试通过生成一个全局来做到这一点LLVMAddGlobal(具有正确的类型签名),我只是在 JIT 链接阶段收到此错误消息:



LLVM ERROR: Could not resolve external global address: llvm.cos.f64
  

我没有使用 LLVM C++ 接口,所以建议LLVM插入内在函数Cos https://stackoverflow.com/questions/11985247/llvm-insert-intrinsic-function-cos似乎不适用。

我想我需要类似的东西Intrinsic::getDeclaration,但我似乎找不到它。我错过了一些明显的东西吗?


无需离开 C API。将内部名称传递给LLVMAddFunction:

LLVMTypeRef param_types[] = {LLVMDoubleType()};
LLVMTypeRef fn_type = LLVMFunctionType(LLVMDoubleType(), param_types, 1, false);
LLVMValueRef fn = LLVMAddFunction(module, "llvm.cos.f64", fn_type);

然后你可以生成一个调用fn with LLVMBuildCall.

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

使用 LLVM C API 生成对内部函数的调用 的相关文章

  • AVX __m256i 有符号 32 位元素的整数除法

    我试图在 AVX 机器上进行 SIMD 划分并收到编译错误 这是我的代码 m256i help int arr 8 int arr2 8 help mm256 load si256 m256i arr m256i temp temp mm2
  • 为什么 Clang 无法通过 constexpr 函数中的索引获取 __m128 的数据

    include
  • 使用 python libclang 检索评论

    在下面的头文件中我想得到相应的 reflect对类和成员变量的注释 ifndef HEADER FOO define HEADER FOO reflect class Foo public private int m int reflect
  • 使用 LLVM pass 添加内在函数

    我使用 LLVM 通道向输入代码添加了一个内在函数 我能够看到内部调用 但我无法弄清楚如何将代码编译到我的目标架构 x86 64 我正在运行以下命令 clang llvm config ldflags libs all ff s o foo
  • 有 libclang 的教程吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我一直在寻找一些易于理解的 libclang 指南 我在这里或其他论坛上看到了一些帖子 但唯一推荐的信
  • 使用 Emscripten 导出所有函数

    我想通过 JavaScript 以简单的方式使用 C 源代码 仅使用免费 自由软件 所以 Emscripten 似乎是一个不错的选择 https kripken github io emscripten site docs porting
  • intel avx2 中是否有 movemask 指令的逆指令?

    movemask 指令采用 m256i 并返回 int32 其中每个位 前 4 8 或所有 32 位 具体取决于输入向量元素类型 是相应向量元素的最高有效位 我想做相反的事情 取 32 其中只有 4 8 或 32 个最低有效位有意义 并获得
  • LLVM 和编译器术语

    我正在研究 LLVM 系统并且我已经阅读了入门文档 http llvm org docs GettingStarted html 然而 一些术语 以及 clang 示例中的措辞 仍然有点令人困惑 以下术语和命令都是编译过程的一部分 我想知道
  • llvm OCaml 绑定

    我正在研究 llvm OCaml 绑定 我通过 opam 安装了 llvm 包 opam install llvm 当我在 utop 中使用 llvm 时 出现以下错误 require llvm Error The external fun
  • 是否有像 pygccxml 一样的 Python Clang 包装器来包装 GCC-XML?

    很长一段时间以来 我一直在使用 pygccxml 来解析和内省我的 C 源代码 它帮助我在构建过程中进行一些巧妙的代码生成 最近我读了很多关于 LLVM 堆栈的好处 特别是 LLVM Clang 解析器给 C 编译带来的好处 我现在想知道
  • 如何在 CMake 项目中使用 LLVM 的 libcxx 和 libcxxabi?

    目前我正在跑步Debian 9 https en wikipedia org wiki Debian version history Debian 9 Stretch 拉伸 用系统默认的编译器GCC 6 3 0 但我有一个使用 CMake
  • C++ 错误:“_mm_sin_ps”未在此范围内声明

    我正在尝试对将函数应用于数组的不同方法进行基准测试 why is mm sin ps在我的范围内不知道但是 mm sqrt ps is 我怎样才能让它知道 并且编译没有错误 include
  • ld:警告:__DATA/__objc_imageinfo__DATA 节的大小意外地大

    有谁知道这个警告是什么意思 接下来是错误 Command Developer Platforms iPhoneSimulator platform Developer usr bin llvm gcc 4 2 failed with exi
  • 是否可以在 LLVM IR 代码中指定十六进制数?

    例如 error floating point constant invalid for type 3 and i8 0x80 2 从扫描的红外参考手册 http llvm org docs LangRef html simple cons
  • LLVM 尾调用优化

    以下是我对事情的理解 当函数 f 调用自身是其最后一个动作时 它是尾递归的 通过形成循环而不是再次调用函数 可以显着优化尾递归 函数的参数已就地更新 并且函数体再次运行 这称为递归尾调用优化 LLVM 在使用 fastcc GHC 或 Hi
  • 每次升级 Xcode 时,我都会遇到安装了 Brew 的 GCC 的链接器错误

    因此 我升级到 Mavericks 以及最新版本的 Xcode 5 02 并且正如预期的那样 无法编译任何包含 C 扩展的新 Ruby gem 这种情况尤其发生在我自己的项目 NMatrix 中 其中包含 C 和 C 代码 我重新安装了 X
  • 使用 libclang 从内存中的 C 代码生成程序集

    我需要实现一个使用 LLVM Clang 作为后端将 C 代码编译为 eBPF 字节码的库 代码将从内存中读取 我也需要在内存中获取生成的汇编代码 到目前为止 我已经能够使用以下代码编译为 LLVM IR include
  • 按字节数对向量进行混洗

    有什么办法可以左移 v 0 gt v 1 a m128i by n字节 其中n仅在运行时才知道 我目前仅限于 AVX1 但如果 AVX2 512 使这变得更容易 我非常感兴趣 I found mm bslli si128 m128i imm
  • LLVM cpp 后端,它会取代 c 后端吗?

    我的问题是关于 CPP 后端 它与 C 后端的用途相同吗 C 后端是我最喜欢的 LLVM 功能之一 我对它被删除感到非常沮丧 真正的区别是什么 我非常感谢任何帮助 参考 LLVM 3 1 发行说明 http llvm org release
  • 从什么时候起 Xcode 不再需要前向方法声明,为什么?

    我注意到 Xcode 或更准确地说是 Apple LLVM 编译器 不再需要前向方法声明 换句话说 构建以下代码时不会发出警告 implementation Foo void foo self bar void bar end 这曾经发出警

随机推荐

  • 使用 SBT 运行 JUnit 测试

    我有一个 0 13 7 SBT 项目 有几个子项目 其中之一叫做webapp 并且它有很多JUnit测试在webapp src test java 运行时 sbt webapp test 只有ScalaTest测试已运行 但没有 JUnit
  • 向 MQ 发送消息时如何删除默认的 Spring JMS 模板标头?

    使用 Java Spring 与 WebSphere MQ 交互并尝试向其发送消息 Spring 不断向其添加以下标头信息 RFH MQSTR
  • 如何更改 SQL Server 的默认语言?

    现在当我查询时 SELECT language 它得到 us english 但我需要俄语 我不能使用SET LANGUAGE russian对于每个查询 我需要默认设置它 对于所有新会话 使用 SQL Server Management
  • Java - 从 JFileChooser 中删除组件(文件类型)

    如何从 JFileChooser 中删除组件 文件类型 标签及其组合框 我有以下代码 JFileChooser fileChooser new JFileChooser fileChooser setFileSelectionMode JF
  • IF 语句中 OR 和 AND 运算符的中断条件

    If 语句和任何其他布尔比较足够智能 可以在评估时在第一个 FALSE 值处停止A and B and C and D评估时首先为 TRUE 值A or B or C or D 这种行为的名称是什么 这是编译器优化吗 如果是这样 有没有办法
  • 如何强制完全下载链接上的txt文件?

    我有一个简单的文本文件 我想在任何锚标记链接上下载该文件 但是当我点击该链接时 txt 文件显示给我但未下载 我已经尝试过这段代码 a href test txt Click here a 单击链接时下载文件 而不是导航到文件 a href
  • 路由错误未初始化常量用户

    我是 Rails 新手 我正在尝试为演示应用程序设置 使用 facebook 登录 我正在使用 OmniAuth 并遵循本教程 https github com plataformatec devise wiki OmniAuth 概述 h
  • 多类模型的准确率、精确度和召回率

    我该如何计算accuracy 精确 and recall对于混淆矩阵中的每个类 我正在使用嵌入式数据集 iris 混淆矩阵如下 prediction setosa versicolor virginica setosa 29 0 0 ver
  • 打印 Windows 窗体

    我继承了一些代码来打印表单的内容 但是在纸上生成的图像似乎有某种阴影 模糊 就好像它试图进行抗锯齿但做得不太好 并且字母在边缘像素化 有谁知道提高最终质量的方法吗 System Drawing Printing PrintDocument
  • Visual Studio 扩展中的 app.config?

    我创建了一个代表 Visual Studio 项目向导 vsix 包 的 Visual Studio 扩展 我正在尝试连接 log4net 但没有成功 我已将问题归结为 app config 未正确加载 我已将其添加到我的 Visual S
  • 棘手的数组初始化

    在 C 不是 C 中 我尝试创建两个包含相同值的字符串表 但以两种不同的方式对值进行排序 而且我不希望字符串在内存中重复 基本上 我想做以下事情 除了根据 gcc 之外 它会失败 因为第二个数组初始化中的 初始化器元素不是常量 有办法解决这
  • 在 WCF/.NET 中返回数据表

    我有一个 WCF 服务 我想从中返回一个数据表 我知道 就返回 DataTable 是否是一个好的实践而言 这通常是一个备受争议的话题 让我们暂时把它放在一边 当我从头开始创建数据表时 如下所示 没有任何问题 该表已创建 填充并返回给客户端
  • 删除工作表(如果存在)并创建一个新工作表

    我想浏览我的 Excel 工作表并找到具有特定名称的工作表 如果找到则删除该工作表 之后 我想在所有具有该名称的现有工作表之后创建一个工作表 我的代码如下 For Each ws In Worksheets If ws Name asdf
  • Scapy生成STP(生成树协议)数据包

    我正在尝试生成STP数据包并使用wireshark捕获它 基本上我所做的是 gt gt gt 从Scapy发送 STP wireshark的结果是 53918 2671 938356000 00 00 00 00 00 00 FC 49 格
  • 启用 NoResize 模式时最小化窗口

    我有一个 WPF 应用程序 其中Window财产ResizeMode设置为NoResize 因此最大化和最小化按钮被隐藏 有没有办法添加最小化按钮 因为我不想允许用户仅调整窗口大小以避免表单上的控件变形 但最小化窗口是一个有用的功能 Set
  • 如何让按钮在div中居中?

    我有一个宽度为 100 的 div 我想在其中放置一个按钮 我该怎么做 div style width 100 height 100 border 1px solid div
  • 隐藏标题页上的幻灯片编号

    我在用 Reveal initialize slideNumber true 是否有可能隐藏标题页上的幻灯片编号 我是这样做的 Reveal addEventListener slidechanged event gt const isFi
  • 标签内的图像
  • 我有一个关于内部浮动元素的问题 li tag 我有以下标记 li li img src concept truck jpg alt 2013 Toyota Tacoma p 2013 Toyota Tacoma p p Price 4500
  • 无法获取 Flask 应用程序中设置的环境变量

    我尝试在 CentOS 中将敏感信息设置为环境变量 并将它们传递给主文件中使用的 Flask 配置文件 即init py 但这没有用 Flask 应用程序在 Apache 下运行 我首先以 root 用户身份编辑 etc environme
  • 使用 LLVM C API 生成对内部函数的调用

    我正在编写一些使用 LLVM C API 的代码 如何使用内在函数 例如llvm cos f64 or llvm sadd with overflow i32 每当我尝试通过生成一个全局来做到这一点LLVMAddGlobal 具有正确的类型