2017-01-02 2 views
2

В настоящее время я пытаюсь установить по умолчанию Pass to Opt/Clang. Она будет называться неявно, когда я использую такие команды, как:Установите значение по умолчанию llvm Перейдите к Opt и Clang

clang -c -emit-llvm code.ll 

и

opt code.ll 

Проблема заключается в том, что изменение должно быть сделано непосредственно на исходном коде LLVM, то есть, я не должен использовать переменные окружения, символические ссылки и псевдонимы.

Я сделал много поиска в Интернете и на исходном коде llvm, но я не нашел решения, и я не знаю, как решить эту проблему.

ответ

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 
Смежные вопросы