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

发布于 2024-10-31 20:08:42 字数 635 浏览 5 评论 0原文

我目前正在运行一些 llvm pass,并希望使用 SPEC 2006 CPU 基准测试套件来测试它们的有用性。但是,我还没有弄清楚如何修改 SPEC 设置以执行除使用 llvm-gcc 输出 llvm 位码之外的任何操作。以下是我想要修改 SPEC 的工作流程:

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

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,但我不知道如何选择不同的链接/预链接过程。

谢谢!

I am currently working on running some llvm passes and would like to benchmark their usefulness using the SPEC 2006 CPU benchmark suite. However, I've not figured out how to modify the SPEC setup to do anything other than use llvm-gcc to output llvm bitcode. Here is what I'd like to modify the workflow of SPEC to do:

compile the .o files with llvm into llvm-bytecode

llvm-gcc -emit-llvm *.c

For each .o file, run opt (llvm's optimization pass):

opt -adce -mem2reg cfline.o

Link with llvm-link:

llvm-link *.o -o out.o.linked

Turn the llvm bytecode into assembly

llc out.o.linked

And finally turn that into executable code:

gcc out.o.linked -o out.executable

Is there a way I can do this? I know I can edit the .cfg files to emit llvm, but then I don't know how to choose a different linking/pre-linking procedure.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

情愿 2024-11-07 20:08:42

LLVM 有一个 test-suite 子项目,它已经知道如何构建和运行 SPEC 。有关详细信息,请参阅文档

LLVM has a test-suite subproject that already knows how to build and run SPEC. See the docs for more info.

阳光的暖冬 2024-11-07 20:08:42

在CPUSPEC2017中,可以使用配置文件修改链接器。需要设置CLD/CXXLD。例如,
CLD = $(LLVM_BIN_PATH)/llvm-link,
CXXLD = $(LLVM_BIN_PATH)/llvm-link.

还可以通过修改 Makefile.defaults 文件来运行 opt 命令。可以将其添加到指定构建可执行文件的命令的部分中。

In CPUSPEC2017, the linker can be modified using the config file. CLD/CXXLD needs to be set. For example,
CLD = $(LLVM_BIN_PATH)/llvm-link,
CXXLD = $(LLVM_BIN_PATH)/llvm-link.

The opt command can also be run by modifying the Makefile.defaults file. It can be added in the section specifying the commands to build the executables.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文