c - 如何从 C 和 JAVA 代码中获取注册传输语言 (RTL) 代码?

标签 c gcc compiler-construction

当任何像 GCC 这样的编译器编译 C 程序时,它会生成中间代码。就像我们可以通过将 -s 选项应用于任何 .c 文件来获取汇编代码一样,同样我想为 C 和 JAVA 文件获取 Register-Transfer-Language (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

从一些与 IR 相关的倾销选项,从 HLL 到深度。可能你想要选项 4。
  • 抽象语法树 (AST)。 -fdump-tree-original-raw 开关转储给定输入源的 AST 的文本表示。
  • Gnu 简单表示 (GIMPLE) -fdump-tree-gimple-raw 开关转储输入源的 GIMPLE 表示。
  • 控制流图 (CFG)。 -fdump-tree-cfg-raw 开关转储 GIMPLE 代码的 CFG 形式。
  • 寄存器传输语言 (RTL IR) -da 开关转储输入源程序的 RTL IR,并将传递号作为转储文件名的一部分。
  • 汇编语言 (ASM)。 -S 开关转储输入的目标汇编代码。在我们的例子中,这是奔腾汇编语言。
  • 关于c - 如何从 C 和 JAVA 代码中获取注册传输语言 (RTL) 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33624392/

    相关文章:

    c++ - 我可以允许多个程序同时读取同一个文件吗?

    c - ulimit -c unlimited 命令如何使用,它有什么作用?

    c++ - 如何设置 eclipse 以使用 arm 的代码源工具链

    无法与 Linux 上的 Lua 库链接

    java - Java 编译器是否有效地处理内联字符串?

    vim - 运行用 python 编写的 vim 脚本?

    c - 静态代码分析工具报告的缓冲区溢出问题

    c - 将文件的字母计数存储到数组中

    c - 解码C代码的等效汇编代码

    c# - 扩展 Mono C# 编译器 : is there any documentation or precedent?