如何从C和JAVA代码中获取寄存器转移语言(RTL)代码



当任何像GCC这样的编译器编译C程序时,它都会生成中间代码。就像我们可以通过将-s选项应用于任何.c文件来获得汇编代码一样,我也想为c和JAVA文件获得注册传输语言(RTL)。如何获取?

三个地址的代码称为gimple,请参见例如。https://gcc.gnu.org/onlinedocs/gccint/GIMPLE.html但这似乎更多的是前端后端通信,它可以使用转储

  gcc  -fdump-tree-gimple <file>  

请参阅http://www.cse.iitb.ac.in/~uday/courses/cs324-05/gccProjects/node4.html

从HLL到deep的一些更多与IR相关的转储选项。也许你想要第四种选择。

  1. 抽象语法树(AST)-fdump树原始原始原始开关转储给定输入源的AST的文本表示
  2. Gnu SIMPLE表示(GIMPLE)-fdump树GIMPLE原始开关转储输入源的GIMPLE表示
  3. 控制流图(CFG)-fdump-tree cfg原始开关转储GIMPLE代码的cfg形式
  4. 寄存器传输语言(RTL IR)-da开关转储输入源程序的RTL IR,并将过程号作为转储文件名的一部分
  5. 汇编语言(ASM)-S开关转储输入的目标程序集代码。在我们的例子中,这是奔腾汇编语言

最新更新