| 56 | } |
| 57 | |
| 58 | llvm::PreservedAnalyses |
| 59 | hipsycl::compiler::SimplifyKernelPass::run(llvm::Function &F, llvm::FunctionAnalysisManager &AM) { |
| 60 | const auto &MAMProxy = AM.getResult<llvm::ModuleAnalysisManagerFunctionProxy>(F); |
| 61 | const auto *SAA = MAMProxy.getCachedResult<SplitterAnnotationAnalysis>(*F.getParent()); |
| 62 | assert(SAA && "Must have SplitterAnnotationAnalysis cached!"); |
| 63 | if (!SAA->isKernelFunc(&F)) |
| 64 | return llvm::PreservedAnalyses::all(); |
| 65 | |
| 66 | auto &DT = AM.getResult<llvm::DominatorTreeAnalysis>(F); |
| 67 | auto &AC = AM.getResult<llvm::AssumptionAnalysis>(F); |
| 68 | |
| 69 | if (!simplifyKernel(F, DT, AC)) |
| 70 | return llvm::PreservedAnalyses::all(); |
| 71 | |
| 72 | llvm::PreservedAnalyses PA; |
| 73 | PA.preserveSet<llvm::CFGAnalyses>(); |
| 74 | PA.preserve<SplitterAnnotationAnalysis>(); |
| 75 | return PA; |
| 76 | } |
| 77 | |
| 78 | char hipsycl::compiler::SimplifyKernelPassLegacy::ID = 0; |
nothing calls this directly
no test coverage detected