整个计划的AST

时间:2016-10-04 22:23:33

标签: clang llvm abstract-syntax-tree llvm-clang llvm-ir

我想对c程序的AST进行转换,但是我需要访问为程序创建的所有AST才能进行正确的更改。 LLVM一次处理一个翻译单元,因此,我无法同时访问所有翻译单元的AST。您是否有任何建议我如何访问为程序创建的所有AST,对AST进行分析并对AST进行修改?

总结:

  1. 我需要同时访问该程序的AST。
  2. 对AST进行分析。
  3. 根据我的分析修改AST并从修改后的AST创建llvm IR。

1 个答案:

答案 0 :(得分:1)

您可以尝试在所有生成的.ll文件(来自clang -S -emit-llvm)上使用llvm-link创建一个大型llvm源。

此时您可以访问所有内容。