Lines Matching +full:ci +full:- +full:pass
1 //===--- CodeGenAction.cpp - LLVM Code Generation Frontend Action ---------===//
8 //===----------------------------------------------------------------------===//
33 #include "llvm/Pass.h"
80 this->LinkModules.push_back( in BackendConsumer()
83 llvm::Module *getModule() const { return Gen->GetModule(); } in getModule()
85 return std::unique_ptr<llvm::Module>(Gen->ReleaseModule()); in takeModule()
93 Gen->HandleCXXStaticMemberVarInstantiation(VD); in HandleCXXStaticMemberVarInstantiation()
104 Gen->Initialize(Ctx); in Initialize()
112 Context->getSourceManager(), in HandleTopLevelDecl()
118 Gen->HandleTopLevelDecl(D); in HandleTopLevelDecl()
128 Context->getSourceManager(), in HandleInlineFunctionDefinition()
133 Gen->HandleInlineFunctionDefinition(D); in HandleInlineFunctionDefinition()
141 PrettyStackTraceString CrashInfo("Per-file LLVM IR generation"); in HandleTranslationUnit()
145 Gen->HandleTranslationUnit(C); in HandleTranslationUnit()
157 LLVMContext &Ctx = getModule()->getContext(); in HandleTranslationUnit()
189 Context->getSourceManager(), in HandleTagDeclDefinition()
191 Gen->HandleTagDeclDefinition(D); in HandleTagDeclDefinition()
195 Gen->HandleTagDeclRequiredDefinition(D); in HandleTagDeclRequiredDefinition()
199 Gen->CompleteTentativeDefinition(D); in CompleteTentativeDefinition()
203 Gen->AssignInheritanceModel(RD); in AssignInheritanceModel()
207 Gen->HandleVTable(RD); in HandleVTable()
213 ((BackendConsumer*)Context)->InlineAsmDiagHandler2(SM, Loc); in InlineAsmDiagHandler()
218 ((BackendConsumer *)Context)->DiagnosticHandlerImpl(DI); in DiagnosticHandler()
264 /// ConvertBackendLocation - Convert a location in a temporary llvm::SourceMgr
281 llvm::MemoryBuffer::getMemBufferCopy(LBuf->getBuffer(), in ConvertBackendLocation()
282 LBuf->getBufferIdentifier()); in ConvertBackendLocation()
287 unsigned Offset = D.getLoc().getPointer() - LBuf->getBufferStart(); in ConvertBackendLocation()
294 /// InlineAsmDiagHandler2 - This function is invoked when the backend hits an
300 // we re-format the SMDiagnostic in terms of a clang diagnostic. in InlineAsmDiagHandler2()
310 Loc = ConvertBackendLocation(D, Context->getSourceManager()); in InlineAsmDiagHandler2()
324 // If this problem has clang-level source location information, report the in InlineAsmDiagHandler2()
336 B << SourceRange(Loc.getLocWithOffset(Range.first - Column), in InlineAsmDiagHandler2()
337 Loc.getLocWithOffset(Range.second - Column)); in InlineAsmDiagHandler2()
391 // If this problem has clang-level source location information, report the in InlineAsmDiagHandler()
417 if (const Decl *ND = Gen->GetDeclForMangledName(D.getFunction().getName())) { in StackSizeDiagHandler()
419 Diags.Report(ND->getASTContext().getFullLoc(ND->getLocation()), in StackSizeDiagHandler()
431 SourceManager &SourceMgr = Context->getSourceManager(); in getBestLocationFromDebugLoc()
439 // If -gcolumn-info was not used, Column will be 0. This upsets the in getBestLocationFromDebugLoc()
440 // source manager, so pass 1 if Column is not set. in getBestLocationFromDebugLoc()
451 if (const Decl *FD = Gen->GetDeclForMangledName(D.getFunction().getName())) in getBestLocationFromDebugLoc()
452 Loc = FD->getASTContext().getFullLoc(FD->getLocation()); in getBestLocationFromDebugLoc()
514 // Optimization remarks are active only if the -Rpass flag has a regular in OptimizationRemarkHandler()
515 // expression that matches the name of the pass name in \p D. in OptimizationRemarkHandler()
517 CodeGenOpts.OptimizationRemarkPattern->match(D.getPassName())) in OptimizationRemarkHandler()
523 // Missed optimization remarks are active only if the -Rpass-missed in OptimizationRemarkHandler()
524 // flag has a regular expression that matches the name of the pass in OptimizationRemarkHandler()
527 CodeGenOpts.OptimizationRemarkMissedPattern->match(D.getPassName())) in OptimizationRemarkHandler()
534 // Optimization analysis remarks are active if the pass name is set to in OptimizationRemarkHandler()
535 // llvm::DiagnosticInfo::AlwasyPrint or if the -Rpass-analysis flag has a in OptimizationRemarkHandler()
536 // regular expression that matches the name of the pass name in \p D. in OptimizationRemarkHandler()
540 CodeGenOpts.OptimizationRemarkAnalysisPattern->match(D.getPassName()))) in OptimizationRemarkHandler()
547 // Optimization analysis remarks are active if the pass name is set to in OptimizationRemarkHandler()
548 // llvm::DiagnosticInfo::AlwasyPrint or if the -Rpass-analysis flag has a in OptimizationRemarkHandler()
549 // regular expression that matches the name of the pass name in \p D. in OptimizationRemarkHandler()
553 CodeGenOpts.OptimizationRemarkAnalysisPattern->match(D.getPassName()))) in OptimizationRemarkHandler()
560 // Optimization analysis remarks are active if the pass name is set to in OptimizationRemarkHandler()
561 // llvm::DiagnosticInfo::AlwasyPrint or if the -Rpass-analysis flag has a in OptimizationRemarkHandler()
562 // regular expression that matches the name of the pass name in \p D. in OptimizationRemarkHandler()
566 CodeGenOpts.OptimizationRemarkAnalysisPattern->match(D.getPassName()))) in OptimizationRemarkHandler()
650 << CurLinkModule->getModuleIdentifier() << MsgStorage; in DiagnosticHandlerImpl()
679 BEConsumer->releaseLinkModules(); in EndSourceFileAction()
682 TheModule = BEConsumer->takeModule(); in EndSourceFileAction()
695 GetOutputStream(CompilerInstance &CI, StringRef InFile, BackendAction Action) { in GetOutputStream() argument
698 return CI.createDefaultOutputFile(false, InFile, "s"); in GetOutputStream()
700 return CI.createDefaultOutputFile(false, InFile, "ll"); in GetOutputStream()
702 return CI.createDefaultOutputFile(true, InFile, "bc"); in GetOutputStream()
706 return CI.createNullOutputFile(); in GetOutputStream()
708 return CI.createDefaultOutputFile(true, InFile, "o"); in GetOutputStream()
715 CodeGenAction::CreateASTConsumer(CompilerInstance &CI, StringRef InFile) { in CreateASTConsumer() argument
717 raw_pwrite_stream *OS = GetOutputStream(CI, InFile, BA); in CreateASTConsumer()
723 for (auto &I : CI.getCodeGenOpts().LinkBitcodeFiles) { in CreateASTConsumer()
726 auto BCBuf = CI.getFileManager().getBufferForFile(LinkBCFile); in CreateASTConsumer()
728 CI.getDiagnostics().Report(diag::err_cannot_open_file) in CreateASTConsumer()
737 CI.getDiagnostics().Report(diag::err_cannot_open_file) << LinkBCFile in CreateASTConsumer()
747 if (CI.getCodeGenOpts().CoverageMapping) { in CreateASTConsumer()
749 CI.getPreprocessor().addPPCallbacks( in CreateASTConsumer()
754 BA, CI.getDiagnostics(), CI.getHeaderSearchOpts(), in CreateASTConsumer()
755 CI.getPreprocessorOpts(), CI.getCodeGenOpts(), CI.getTargetOpts(), in CreateASTConsumer()
756 CI.getLangOpts(), CI.getFrontendOpts().ShowTimers, InFile, LinkModules, in CreateASTConsumer()
781 Diags->Report(DiagID).AddString("cannot compile inline asm"); in BitcodeInlineAsmDiagHandler()
788 CompilerInstance &CI = getCompilerInstance(); in ExecuteAction() local
789 raw_pwrite_stream *OS = GetOutputStream(CI, getCurrentFile(), BA); in ExecuteAction()
794 SourceManager &SM = CI.getSourceManager(); in ExecuteAction()
802 if (!CI.getCodeGenOpts().ThinLTOIndexFile.empty()) in ExecuteAction()
803 VMContext->enableDebugTypeODRUniquing(); in ExecuteAction()
806 TheModule = parseIR(MainFile->getMemBufferRef(), Err, *VMContext); in ExecuteAction()
824 CI.getDiagnostics().getCustomDiagID(DiagnosticsEngine::Error, "%0"); in ExecuteAction()
826 CI.getDiagnostics().Report(Loc, DiagID) << Msg; in ExecuteAction()
829 const TargetOptions &TargetOpts = CI.getTargetOpts(); in ExecuteAction()
830 if (TheModule->getTargetTriple() != TargetOpts.Triple) { in ExecuteAction()
831 CI.getDiagnostics().Report(SourceLocation(), in ExecuteAction()
834 TheModule->setTargetTriple(TargetOpts.Triple); in ExecuteAction()
837 EmbedBitcode(TheModule.get(), CI.getCodeGenOpts(), in ExecuteAction()
838 MainFile->getMemBufferRef()); in ExecuteAction()
840 LLVMContext &Ctx = TheModule->getContext(); in ExecuteAction()
842 &CI.getDiagnostics()); in ExecuteAction()
844 EmitBackendOutput(CI.getDiagnostics(), CI.getCodeGenOpts(), TargetOpts, in ExecuteAction()
845 CI.getLangOpts(), CI.getTarget().getDataLayout(), in ExecuteAction()
851 this->ASTFrontendAction::ExecuteAction(); in ExecuteAction()