首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >简化LLVM SSA中的表达式

简化LLVM SSA中的表达式
EN

Stack Overflow用户
提问于 2014-03-10 12:54:55
回答 1查看 371关注 0票数 3

存在从指令操作数转出( breaks a constant GEP expression )到其自己的指令中的传递,使得这种嵌套的GEP表达式变得显式,从而在随后的传递中更容易使用。

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

代码语言:javascript
运行
复制
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 ]
  ...

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

EN

回答 1

Stack Overflow用户

发布于 2014-03-10 13:49:12

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

然而,在我看来,修改SAFECode的BreakConstantGEPs传递来实现这一点应该非常简单:只需将最初插入到工作列表中的条件更改为isa<PHINode>,而不是操作数循环检查hasConstantGEP

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22292338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档