相关指令:
clang++ -emit-llvm -c -o fise*.bc file*.cpp
将c++代码编译成bc格式的二进制码
llc -march=cpp -o file*_llvm.cpp file*.bc
将bc二进制码反编译成IR中间码
g++ -O2 test_llvm.cpp -D __STDC_LIMIT_MACROS -D __STDC_CONSTANT_MACROS `llvm-config --cxxflags --ldflags --libs` -o test_print
通过GCC将IR中间码编译成可执行文件,其中`llvm-config --cxxflags --ldflags --libs`是LLVM依赖的库文件等
IR过程:
1. 创建一个Module,这个类相当于C语言的源文件,包含函数,全局变量定义、外部函数等
2. 在Module中添加Function,包含: