diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2017-06-01 20:58:36 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2017-06-01 20:58:36 +0000 | 
| commit | f382538d471e38a9b98f016c4caebd24c8d60b62 (patch) | |
| tree | d30f3d58b1044b5355d50c17a6a96c6a0b35703a /lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp | |
| parent | ee2f195dd3e40f49698ca4dc2666ec09c770e80d (diff) | |
Notes
Diffstat (limited to 'lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp')
| -rw-r--r-- | lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp | 20 | 
1 files changed, 13 insertions, 7 deletions
| diff --git a/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp b/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp index 659cb9df00a2c..9dede4cedd1de 100644 --- a/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp +++ b/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp @@ -6,14 +6,8 @@  // License. See LICENSE.TXT for details.  //  //===----------------------------------------------------------------------===// -// -// This pass prepares a module containing type metadata for ThinLTO by splitting -// it into regular and thin LTO parts if possible, and writing both parts to -// a multi-module bitcode file. Modules that do not contain type metadata are -// written unmodified as a single module. -// -//===----------------------------------------------------------------------===// +#include "llvm/Transforms/IPO/ThinLTOBitcodeWriter.h"  #include "llvm/Analysis/BasicAliasAnalysis.h"  #include "llvm/Analysis/ModuleSummaryAnalysis.h"  #include "llvm/Analysis/ProfileSummaryInfo.h" @@ -436,3 +430,15 @@ ModulePass *llvm::createWriteThinLTOBitcodePass(raw_ostream &Str,                                                  raw_ostream *ThinLinkOS) {    return new WriteThinLTOBitcode(Str, ThinLinkOS);  } + +PreservedAnalyses +llvm::ThinLTOBitcodeWriterPass::run(Module &M, ModuleAnalysisManager &AM) { +  FunctionAnalysisManager &FAM = +      AM.getResult<FunctionAnalysisManagerModuleProxy>(M).getManager(); +  writeThinLTOBitcode(OS, ThinLinkOS, +                      [&FAM](Function &F) -> AAResults & { +                        return FAM.getResult<AAManager>(F); +                      }, +                      M, &AM.getResult<ModuleSummaryIndexAnalysis>(M)); +  return PreservedAnalyses::all(); +} | 
