selection instruction

        在LLVM的代码生成框架中,确实存在三种类型的指令表达,它们会在同一个SelectionDAG(选择有向无环图)中共存。这些类型分别是:

  1. 一般LLVM ISD节点
    这些是LLVM提供的通用、平台无关的节点,用于表示各种常见的算术、逻辑、内存和控制流操作。例如,ISD::ADD表示一个加法操作,它不直接对应于任何特定硬件平台的机器指令,而是表示一个加法概念,可以在许多平台上找到对应的实现。

  2. 平台相关ISD节点
    这些节点是专为特定目标平台或架构定义的,允许在SelectionDAG级别表示那些通用ISD节点无法充分表达的特定于平台的操作或优化。例如,X86ISD::RET_FLAG可能是一个在x86架构上特有的节点,用于处理与返回指令相关的标志或条件。这些节点通常定义在目标平台的TargetLowering类中。

  3. 平台指令
    这些是直接对应于特定硬件平台的机器指令的表示。例如,X86::ADD32ri8表示x86平台上的一个具体的32位加法指令,其中ri8可能表示立即数(immediate)作为操作数的一种特定形式。平台指令是最终将被编码为二进制机器代码并在目标硬件上执行的指令。

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值