gpt4 book ai didi

llvm - 简化 LLVM SSA 中的表达式

转载 作者:行者123 更新时间:2023-12-02 03:37:48 25 4
gpt4 key购买 nike

有一个通行证breaks a constant GEP expression将一条指令的操作数转换成它自己的指令,这样嵌套的 GEP 表达式就变得明确了,因此在后续的传递中更容易处理。

现在我也遇到了类似的问题。此 SSA Phi 指令 ( link ):

while.cond:                                       ; preds = %while.body, %entry
%n.0 = phi %struct.Node* [ bitcast ({ %struct.Node*, i32, [4 x i8] }* @n1 to %struct.Node*), %entry ], [ %13, %while.body ]
...

包含一个 bitcast 指令 ( link ) 作为它的“内联”操作数。是否存在允许我将给定模块的 SSA 分解为其最基本指令的 channel ,本质上是“取消内联”此类嵌套表达式以使它们成为显式 SSA 指令?

最佳答案

我不知道有这样的通行证。

但是,在我看来,修改 SAFECode 的 BreakConstantGEPs pass 做到这一点应该很容易:只需将最初插入工作列表的条件更改为 isa<PHINode>而不是操作数循环检查 hasConstantGEP .

关于llvm - 简化 LLVM SSA 中的表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22292338/

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