【发布时间】:2014-12-01 01:37:22
【问题描述】:
我需要转储所有 Gimple 树(类似于 -fdump-tree-whatever)。我为此目的创建了一个插件,但我不确定我应该如何访问 Gimple 树。插件已连接到 GIMPLE_PASS:
static struct opt_pass my_pass =
{
.type = GIMPLE_PASS,
...
我尝试使用 gsi (gimple_stmt_iterator) 迭代基本块,但是,我的转储不完整。
你能帮我吗,我应该如何访问 Gimple 树,以便倾倒每一棵树?
【问题讨论】:
-
不清楚 -fdump-tree-all 有什么问题
-
不完整,即。全局变量...但这并不重要。 Gimple 操作是个问题
-
全局变量不是函数上下文的一部分,永远不能通过任何语句迭代器传递。请具体说明您需要哪些确切信息以及您如何尝试使用 gsi 访问它。
-
我需要完全重建所需的一切 - 所以我可以导出并让它与前端一起处理。
-
类似gcc.gnu.org/wiki/GimpleFrontEnd 的东西?我认为这在实践中是不可能的(意思是:太难了)。 Gimple 不是为它而构建的,太多的不一致,太多的不便。