设置默认llvm传递给Opt和Clang

时间:2017-01-02 00:59:12

标签: c++ llvm llvm-clang llvm-ir

目前我正在尝试设置默认传递给Opt / Clang。当我使用如下命令时,它将被隐式调用:

clang -c -emit-llvm code.ll

opt code.ll

问题是修改应该直接在llvm源代码上完成,也就是说,我不应该使用环境变量,符号链接和别名。

我在互联网和llvm源代码上做了很多搜索,但我没有找到解决方案,我也不知道如何解决这个问题。

1 个答案:

答案 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
相关问题