我使用命令-fdump-tree-all
和-fdump-rtl-all
生成了转储输出文件,我收到了很多转储文件。我已经读过GIMPLE中的代码是伪C语法,而RTL转储文件的级别太低而无法理解。有没有办法了解GIMPLE和RTL转储文件?任何可以将其转换为C代码或有用的软件?任何学习理解它的教程?谢谢
答案 0 :(得分:2)
最好的方法(对我而言)是转储一些示例并自己理解发出的代码。这并不困难,原始代码有一些变化(如果使用goto转换为循环),gcc中有很多传递,我的建议是转储你需要的东西。在我的情况下,我经常使用命令:
-fdump-tree-lower
-fdump-tree-cfg
-fdump-tree-ssa
-fdump-tree-optimized (it's the last pass before going into rtl passes)
rtl几乎是不可压缩的,需要对该方言有很好的理解