如何将自定义 LLVM Pass 添加到 Rustc

6
我正试图将我的llvm pass添加到Rustc中。Rustc有一个编译选项-C passes=val,我们可以通过它添加额外的LLVM pass来运行。但是,据我尝试,只有当pass代码放在LLVM代码树中时,此选项才能接受该pass,但我想将我的pass加入到Rustc之外。
当我通过这个选项添加我的pass时:RUSTFLAGS="-C passes=my-pass" cargo build,编译器报告错误:error: failed to run LLVM passes: unknown pass name 'my-pass'
然后我尝试以clang的方式通过-C llvm-args=-fpass-plugin=/opt/new-pass/mypass.so -C passes=my-pass来加载我的pass。它报告:rustc -Cllvm-args="..." with: Unknown command line argument '-fpass-plugin=/opt/new-pass/mypass.so'。还尝试用其他选项替换-fpass-plugin,如-load-load-pass-plugin,但它们仍然不能被rustc识别。
我应该如何将自己的pass添加到Rustc中?

1
https://github.com/rust-lang/rust/pull/86267 - PitaJ
1个回答

1

我也曾试图找到解决这个问题的方法。根据一个 Rust 开发者在他们的 Zulip Chat 上的说法,看起来你需要构建支持插件的自定义 rustc


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接