diff options
Diffstat (limited to 'tools/llvm-lto/llvm-lto.cpp')
| -rw-r--r-- | tools/llvm-lto/llvm-lto.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/tools/llvm-lto/llvm-lto.cpp b/tools/llvm-lto/llvm-lto.cpp index 75668a9dd8b6..b6facc919b51 100644 --- a/tools/llvm-lto/llvm-lto.cpp +++ b/tools/llvm-lto/llvm-lto.cpp @@ -158,7 +158,7 @@ static cl::opt<int> ThinLTOCachePruningInterval("thinlto-cache-pruning-interval", cl::init(1200), cl::desc("Set ThinLTO cache pruning interval.")); -static cl::opt<int> +static cl::opt<unsigned long long> ThinLTOCacheMaxSizeBytes("thinlto-cache-max-size-bytes", cl::desc("Set ThinLTO cache pruning directory maximum size in bytes.")); @@ -166,6 +166,10 @@ static cl::opt<int> ThinLTOCacheMaxSizeFiles("thinlto-cache-max-size-files", cl::init(1000000), cl::desc("Set ThinLTO cache pruning directory maximum number of files.")); +static cl::opt<unsigned> + ThinLTOCacheEntryExpiration("thinlto-cache-entry-expiration", cl::init(604800) /* 1w */, + cl::desc("Set ThinLTO cache entry expiration time.")); + static cl::opt<std::string> ThinLTOSaveTempsPrefix( "thinlto-save-temps", cl::desc("Save ThinLTO temp files using filenames created by adding " @@ -481,6 +485,7 @@ public: ThinGenerator.setTargetOptions(Options); ThinGenerator.setCacheDir(ThinLTOCacheDir); ThinGenerator.setCachePruningInterval(ThinLTOCachePruningInterval); + ThinGenerator.setCacheEntryExpiration(ThinLTOCacheEntryExpiration); ThinGenerator.setCacheMaxSizeFiles(ThinLTOCacheMaxSizeFiles); ThinGenerator.setCacheMaxSizeBytes(ThinLTOCacheMaxSizeBytes); ThinGenerator.setFreestanding(EnableFreestanding); @@ -557,11 +562,14 @@ private: auto Index = loadCombinedIndex(); for (auto &Filename : InputFilenames) { + LLVMContext Ctx; + auto TheModule = loadModule(Filename, Ctx); + // Build a map of module to the GUIDs and summary objects that should // be written to its index. std::map<std::string, GVSummaryMapTy> ModuleToSummariesForIndex; - ThinLTOCodeGenerator::gatherImportedSummariesForModule( - Filename, *Index, ModuleToSummariesForIndex); + ThinGenerator.gatherImportedSummariesForModule(*TheModule, *Index, + ModuleToSummariesForIndex); std::string OutputName = OutputFilename; if (OutputName.empty()) { @@ -589,12 +597,14 @@ private: auto Index = loadCombinedIndex(); for (auto &Filename : InputFilenames) { + LLVMContext Ctx; + auto TheModule = loadModule(Filename, Ctx); std::string OutputName = OutputFilename; if (OutputName.empty()) { OutputName = Filename + ".imports"; } OutputName = getThinLTOOutputFile(OutputName, OldPrefix, NewPrefix); - ThinLTOCodeGenerator::emitImports(Filename, OutputName, *Index); + ThinGenerator.emitImports(*TheModule, OutputName, *Index); } } |
