如何在 LLVM 中将 genericValue 转换为 Value?

2024-02-14

我从事口译工作。我在内存中有一个变量的地址,我设法从它中获取实际值,并使用 LoadValueFromMemory 函数将其放入 genericValue 中。现在我需要创建一个 StoreInst 并希望将获得的值放入 Value 对象中以在 StoreInst 中使用它。任何想法?


为了回答标题中的问题,GenericValue只是一个与类型无关的容器,用于某些值。创建 LLVMValue从中,您需要创建一个Constant http://llvm.org/docs/doxygen/html/classllvm_1_1Constant.html适当的类型,并使用该值来初始化常量。

我假设您指的是从一个模块获取一个值并在另一个不相关的模块中使用它,否则我不清楚为什么您要通过GenericValue为了这:

  • 如果该值来自解释器端,则不需要将其存储在GenericValue,你可以创建一个Constant从那个值。
  • 如果该值来自同一模块中的 LLVM IR 端,则也不需要加载该值Value into a GenericValue,你可以用它Value直接作为创建时的参数store操作说明。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 LLVM 中将 genericValue 转换为 Value? 的相关文章

随机推荐

  • 自引用结构定义?

    我写 C 的时间不长 所以我不确定应该如何做这些递归的事情 我希望每个单元格包含另一个单元格 但我在 字段 child 的类型不完整 行 这是怎么回事 typedef struct Cell int isParent Cell child
  • ActionCable:如何使用动态通道

    我用 Rails 5 和 ActionCable 构建了一个简单的聊天 其中有一个简单的 聊天 频道 如何使频道订阅和消息广播动态化 以便我可以创建聊天频道并将消息发送到正确的频道 不幸的是 我找不到这方面的单个代码示例 Update 下面
  • Sqoop 自由格式查询导致 Hue/Oozie 中的参数无法识别

    我正在尝试使用自由格式查询运行 sqoop 命令 因为我需要执行聚合 它作为 Oozie 工作流程通过 Hue 界面提交 以下是命令和查询的缩小版本 处理命令时 query 语句 用引号引起来 会导致查询的每个部分被解释为无法识别的参数 如
  • Flutter:垃圾收集 - 如何检查?

    在 Flutter 中 如何检查我是否正确释放 处置 所有内容 我正在构建一个应用程序 我感觉模拟器在一系列热重载后变得越来越慢 非常感谢您的回答 Dart 带有一个名为的调试器Observatory 它可以满足您所需的一切 从 CPU 内
  • 如何使用 Java 8 Streams 按对象属性分组并映射到另一个对象?

    假设我有一组碰碰车 它们的侧面有尺寸 颜色和标识符 汽车代码 class BumperCar int size String color String carCode 现在我需要将碰碰车映射到List of DistGroup对象 每个对象
  • HTML 5 音频当前位置

    将 HTML 5 与 DOM 一起使用 有没有办法获取用户正在播放音频文件的当前位置 并在稍后返回到该位置 See the HTML媒体元素 http dev w3 org html5 spec Overview html htmlmedi
  • 使用 **kwargs 将 **kwargs 参数传递给另一个函数

    我不明白下面的例子 假设我有这些功能 python likes def save filename data kwargs fo openX filename w kwargs lt 1 fo write data fo close pyt
  • Omniauth-facebook 登录无法正常工作

    当我尝试使用omniauth facebook 登录我的Rails 应用程序时 出现以下错误 这是在 localhost 3000 上测试时 不安全登录被阻止 您无法从不安全页面获取访问令牌或登录此应用程序 尝试将页面重新加载为 https
  • 命令设计模式 - 调用者是可选的吗?

    Command 设计模式中 Invoker 类是可选的吗 客户端需要实例化命令的具体命令和接收器 客户端是否总是需要实例化 Invoker 并将命令对象传递给 Invoker 对象 稍后 每当客户端需要执行命令时 客户端只需询问 Invok
  • FizzBu​​zz 列表理解

    当我学习 python 时 我正在摆弄一些不同的 fizzuzz 脚本 我发现这个效果很好 但我无法破译它是如何工作的 我知道正常的嘶嘶声如何与 for 循环和 if i 3 0 and i 5 0 一起工作 让我困惑的是如何 Fizz n
  • 批处理文件创建另一个批处理文件,如何在写入行时忽略命令?

    我正在编写的 Windows 批处理文件遇到了一些问题 我需要批处理文件将一些特定行写入另一个批处理文件 我一直使用的方法是 type NUL gt batchfile bat ECHO texttobewrittentofile gt g
  • Spark 2.x 的 Spark.sql.crossJoin.enabled

    我正在使用 预览 Google DataProc Image 1 1 和 Spark 2 0 0 为了完成我的一项操作 我必须完成笛卡尔积 从2 0 0版本开始 创建了一个spark配置参数 spark sql cross Join ena
  • Perl 抛出“参考键是实验性的”

    开发环境为OS X 10 10 3 Perl v This is perl 5 version 18 subversion 2 v5 18 2 built for darwin thread multi 2level with 2 regi
  • lambda 表达式中的枚举的编译方式不同;重载解析改进的结果是什么?

    在尝试 Visual Studio 2015 RC 时 我收到了先前工作代码的运行时错误 给定 lambda x gt x CustomerStatusID CustomerStatuses Active 它被传递给一个函数作为Expres
  • 在 Google Market 上发布一款应用的多个版本

    我有一个 Android 应用程序 我想用它来显示高质量的图像 然而 有许多不同的屏幕尺寸和比例 我知道有一些过滤器可以在市场中显示仅适用于小 中 大屏幕设备的应用程序 如果我将两种尺寸的图像放入 1 个应用程序中 应用程序的大小将会增加一
  • 在 RSA 下解码有效负载后未获得相同的会话密钥

    使用以下使用 crypto 库的函数对其进行编码和解码后 我没有获得相同的会话密钥 CryptoPP RSA PrivateKey RSA master privKey CryptoPP RSA PublicKey RSA master p
  • 启动/广播接收器重启问题

    这是一个相当常见的问题 但我失去了理智 我想我已经彻底满足了要求 我希望 BroadcastReceiver 在手机重新启动时执行某些操作 我的广播接收器 用于启动 public class BootReceiver extends Bro
  • Python 闭包和单元格(封闭值)

    Python 的机制是什么使得 lambda x for x in range 5 2 is 4 将 x 的副本绑定到每个 lambda 表达式以使上述表达式等于 2 的常用技巧是什么 我的最终解决方案 for template model
  • 如何让 Chrome 浏览器版本现在与 Python 一起运行? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在使用 selenium 运行一个应用程序 并且在运行 Chrome 驱动程序之前我想知道安装的实际 chrome 浏览器版本 以避免出
  • 如何在 LLVM 中将 genericValue 转换为 Value?

    我从事口译工作 我在内存中有一个变量的地址 我设法从它中获取实际值 并使用 LoadValueFromMemory 函数将其放入 genericValue 中 现在我需要创建一个 StoreInst 并希望将获得的值放入 Value 对象中