2017-01-02 8 views
2

현재 디폴트 패스를 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