gpt4 book ai didi

llvm - LLVM 的 SelectInst 的好处

转载 作者:行者123 更新时间:2023-12-04 02:10:24 31 4
gpt4 key购买 nike

LLVM 有一个 SelectInst 用于表示像 something = cond ?真部分:假部分

在 IR 中这条指令有什么好处,因为 ?: 也总是可以被编译器降低为 BranchInst?是否有支持此类指令的CPU?或者 select 是否被 CodeGenerator 降低为跳转?

我认为分析传递可能有好处,因为 select 保证了隐式 if 的两个“分支”。但另一方面,编译器根本不需要使用该指令,因此这些传递无论如何都必须能够处理 br

最佳答案

是的,您始终可以使用条件分支而不是选择指令,但是选择有几个优点:

  1. 确实有相关的 CPU 指令可以降低这些指令,x86 中最明显的例子是 cmov和各种setcc instructions .
  2. 选择更容易矢量化 - 事实上,矢量化的一个常见阶段是“if 转换”,即将控制流(条件分支)转换为数据流(选择)的过程。

关于llvm - LLVM 的 SelectInst 的好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18673249/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com