Analysis pass 를 사용하는 pass를 구현하던 중, 정상적인 컴파일은 되는데 실행 과정에서 다음 assertion failure 을 확인하였습니다.
swpp-compiler: /home/arnold/swpp202401/practice-materials/scripts/linux/llvm-project/llvm/include/llvm/IR/PassManager.h:892: PassConceptT &llvm::AnalysisManager<llvm::Function>::lookUpPass(AnalysisKey *) [IRUnitT = llvm::Function, ExtraArgTs = <>]: Assertion `PI != AnalysisPasses.end() && "Analysis passes must be registered prior to being queried!"' failed.
사용하고자 하는 analysis pass는 다음과 같습니다.
auto &LI = AM.getResult<LoopAnalysis>(F);
auto &SE = AM.getResult<ScalarEvolutionAnalysis>(F);
auto &DT = AM.getResult<DominatorTreeAnalysis>(F);
auto &TTI = AM.getResult<TargetIRAnalysis>(F);
auto &TLI = AM.getResult<TargetLibraryAnalysis>(F);
auto &AC = AM.getResult<AssumptionAnalysis>(F);
auto &BFI = AM.getResult<BlockFrequencyAnalysis>(F);
auto &PSI = AM.getResult<ProfileSummaryAnalysis>(F);
auto &AA = AM.getResult<AAManager>(F);
Analysis pass 를 사용하기 전에 별도의 registration이 필요한지, 어떻게 할 수 있는지 궁금합니다.
Analysis pass 를 사용하는 pass를 구현하던 중, 정상적인 컴파일은 되는데 실행 과정에서 다음 assertion failure 을 확인하였습니다.
사용하고자 하는 analysis pass는 다음과 같습니다.
Analysis pass 를 사용하기 전에 별도의 registration이 필요한지, 어떻게 할 수 있는지 궁금합니다.