边介绍了几节Clang AST,包括AST的读取,Rewriter,AST的插入等,这里想从AST到IR的转换,介绍一点Clang源码的内容。

前边已经提到了想打印AST树内容的话,需要使用clang -fsyntax-only -Xclang -ast-dump 命令来进行。对于llvm各种文件格式的转换,有一个图说的比较清楚,内容来源见水印。

Clang AST到IR的转换

 

 

 我们使用的源码还是以上次使用的view.cpp

 1 int foo(int a, int b, int *c) {
 2     int ret = 0;
 3     if (a > b) {
 4         ret = a;
 5     } else {
 6         ret = b;
 7     }
 8     for (int temp = 0; temp < 100; ++temp) {
 9         *c = (*c + temp);
10     }
11     return ret;
12 }
13 
14 
15 int main() {
16     int a = 1, b = 2;
17     int c = 0;
18     int d = foo(a, b, &c);
19     return 0;
20 }
View Code

相关文章:

  • 2021-11-28
  • 2021-12-08
  • 2021-07-13
  • 2022-01-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-23
  • 2022-02-09
猜你喜欢
  • 2022-12-23
  • 2021-11-26
  • 2021-08-11
  • 2023-01-05
  • 2021-08-24
  • 2021-06-27
  • 2021-04-12
相关资源
相似解决方案