【TVM源码学习笔记】附录3 导出tvm源码编译中间文件的方法

在扒tvm源码的时候,会经常遇到各种宏,特别是一些函数宏,对阅读代码造成很多麻烦。我们可以使用C++编译器的-E选项,得到源码编译中间文件,里面的所有宏都是已经自动替换后的。

在我们编译源码的build目录下,有个compile_commands.json文件,这个文件中有各个C++代码文件的编译命令。使用grep命令搜文件名(不用带路径),即可找到该文件的编译命令。例如我的环境下,找到的expr_functor.cc的编译命令:

/usr/bin/c++ -DDMLC_USE_FOPEN64=0 -DDMLC_USE_LOGGING_LIBRARY=\"<tvm/runtime/logging.h>\" -DNDEBUG -DNDEBUG=1 -DTVM_INDEX_DEFAULT_I64=1 -DTVM_LLVM_VERSION=130 -DTVM_THREADPOOL_USE_OPENMP=0 -DTVM_USE_LIBBACKTRACE=1 -DUSE_FALLBACK_STL_MAP=0 -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/tvm/tvmsource/tvm/include -I/home/tvm/tvmsource/tvm/build/libbacktrace/include -I/home/tvm/tvmsource/tvm/topi/include -I/home/tvm/tvmsource/tvm/3rdparty/libcrc/include -isystem /home/tvm/tvmsource/tvm/3rdparty/dlpack/include -isystem /home/tvm/tvmsource/tvm/3rdparty/dmlc-core/include -isystem /home/tvm/tvmsource/tvm/3rdparty/rang/include -isystem /home/tvm/tvmsource/tvm/3rdparty/compiler-rt -isystem /home/tvm/tvmsource/tvm/3rdparty/picojson -isystem /home/tvm/llvm/include -std=c++14 -faligned-new -O2 -Wall -fPIC  -o CMakeFiles/tvm_objs.dir/src/relay/ir/expr_functor.cc.o -c /home/tvm/tvmsource/tvm/src/relay/ir/expr_functor.cc

我们把这个命令中的 -c 换成 -E ,去掉 -DDMLC_USE_LOGGING_LIBRARY=\"<tvm/runtime/logging.h>\" ,然后执行,可以得到./CMakeFiles/tvm_objs.dir/src/relay/ir/expr_functor.cc.o文件,该文件不再是二进制文件,而是展开所有宏后的文本文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值