我目前正在运行一些llvm传递,并希望使用SPEC 2006 CPU基准套件对它们的有用性进行基准测试。但是,除了使用llvm-gcc输出llvm位代码外,我还没有弄清楚如何修改SPEC设置以执行任何其他操作。这是我想要修改SPEC的工作流程以执行的操作:
将带有llvm的.o文件编译为llvm字节码
llvm-gcc -emit-llvm *.c
对于每个.o文件,运行opt(llvm的优化过程):
opt -adce -mem2reg cfline.o
与llvm-link链接:
llvm-link *.o -o out.o.linked
将llvm字节码转换为程序集
llc out.o.linked
最后将其转换为可执行代码:
gcc out.o.linked -o out.executable
我有办法吗?我知道我可以编辑.cfg文件以发出llvm,但是然后我不知道如何选择其他链接/预链接过程。
谢谢!
LLVM有一个test-suite子项目,该子项目已经知道如何构建和运行SPEC。有关更多信息,请参见docs。
在CPUSPEC2017中,可以使用配置文件修改链接器。需要设置CLD / CXXLD。例如,CLD = $(LLVM_BIN_PATH)/ llvm-link,CXXLD = $(LLVM_BIN_PATH)/ llvm-link。
opt命令也可以通过修改Makefile.defaults文件来运行。可以将其添加到指定用于构建可执行文件的命令的部分。