目前我正在尝试设置默认传递给Opt / Clang。当我使用如下命令时,它将被隐式调用:
clang -c -emit-llvm code.ll
和
opt code.ll
问题是修改应该直接在llvm源代码上完成,也就是说,我不应该使用环境变量,符号链接和别名。
我在互联网和llvm源代码上做了很多搜索,但我没有找到解决方案,我也不知道如何解决这个问题。
答案 0 :(得分:1)
将您的传递添加到PassManager。
diff --git a/llvm-3.8.0/tools/opt/opt.cpp b/llvm-3.8.0/tools/opt/opt.cpp
@@ -446,6 +446,8 @@ int main(int argc, char **argv) {
if (DisableSimplifyLibCalls)
TLII.disableAllFunctions();
Passes.add(new TargetLibraryInfoWrapperPass(TLII));
+ Passes.add(createxxxPass());
另外,看看这些功能。
PassManagerBuilder::populateFunctionPassManager
PassManagerBuilder::populateModulePassManager
PassManagerBuilder::addLTOOptimizationPasses
PassManagerBuilder::populateLTOPassManager