使用SPEC修改编译过程以使用LLVM

ben*_*ker 5 benchmarking specifications llvm

我目前正致力于运行一些llvm通行证,并希望使用SPEC 2006 CPU基准套件对其有用性进行基准测试.但是,我还没想出如何修改SPEC设置来做除了使用llvm-gcc输出llvm bitcode之外的任何事情.以下是我要修改SPEC的工作流程:

使用llvm将.o文件编译为llvm-bytecode

llvm-gcc -emit-llvm *.c
Run Code Online (Sandbox Code Playgroud)

对于每个.o文件,运行opt(llvm的优化传递):

opt -adce -mem2reg cfline.o
Run Code Online (Sandbox Code Playgroud)

链接llvm-link:

llvm-link *.o -o out.o.linked
Run Code Online (Sandbox Code Playgroud)

将llvm字节码转换为程序集

llc out.o.linked
Run Code Online (Sandbox Code Playgroud)

最后将其转换为可执行代码:

gcc out.o.linked -o out.executable
Run Code Online (Sandbox Code Playgroud)

有没有办法可以做到这一点?我知道我可以编辑.cfg文件来发出llvm,但后来我不知道如何选择不同的链接/预链接程序.

谢谢!

ohm*_*ics 3

LLVM 有一个测试套件子项目,它已经知道如何构建和运行 SPEC。请参阅文档以获取更多信息。