<div dir="ltr">I forgot to include the motivation in the commit message, which was:<div><br></div><div><div>This library will be the home of a new resolution-based LTO interface (D20268),</div><div>which should not be confused with the existing legacy LTO interface in this</div><div>directory.</div></div><div><br></div><div>Peter</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jul 14, 2016 at 2:21 PM, Peter Collingbourne via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: pcc<br>
Date: Thu Jul 14 16:21:16 2016<br>
New Revision: 275476<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=275476&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=275476&view=rev</a><br>
Log:<br>
Move legacy LTO interface headers to legacy/ directory.<br>
<br>
Differential Revision: <a href="https://reviews.llvm.org/D22173" rel="noreferrer" target="_blank">https://reviews.llvm.org/D22173</a><br>
<br>
Added:<br>
    llvm/trunk/include/llvm/LTO/legacy/<br>
    llvm/trunk/include/llvm/LTO/legacy/LTOCodeGenerator.h<br>
      - copied, changed from r275474, llvm/trunk/include/llvm/LTO/LTOCodeGenerator.h<br>
    llvm/trunk/include/llvm/LTO/legacy/LTOModule.h<br>
      - copied, changed from r275474, llvm/trunk/include/llvm/LTO/LTOModule.h<br>
    llvm/trunk/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h<br>
      - copied, changed from r275474, llvm/trunk/include/llvm/LTO/ThinLTOCodeGenerator.h<br>
    llvm/trunk/include/llvm/LTO/legacy/UpdateCompilerUsed.h<br>
      - copied, changed from r275474, llvm/trunk/include/llvm/LTO/UpdateCompilerUsed.h<br>
Removed:<br>
    llvm/trunk/include/llvm/LTO/LTOCodeGenerator.h<br>
    llvm/trunk/include/llvm/LTO/LTOModule.h<br>
    llvm/trunk/include/llvm/LTO/ThinLTOCodeGenerator.h<br>
    llvm/trunk/include/llvm/LTO/UpdateCompilerUsed.h<br>
Modified:<br>
    llvm/trunk/lib/LTO/LTOCodeGenerator.cpp<br>
    llvm/trunk/lib/LTO/LTOModule.cpp<br>
    llvm/trunk/lib/LTO/ThinLTOCodeGenerator.cpp<br>
    llvm/trunk/lib/LTO/UpdateCompilerUsed.cpp<br>
    llvm/trunk/tools/llvm-lto/llvm-lto.cpp<br>
    llvm/trunk/tools/lto/lto.cpp<br>
<br>
Removed: llvm/trunk/include/llvm/LTO/LTOCodeGenerator.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/LTO/LTOCodeGenerator.h?rev=275475&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/LTO/LTOCodeGenerator.h?rev=275475&view=auto</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/LTO/LTOCodeGenerator.h (original)<br>
+++ llvm/trunk/include/llvm/LTO/LTOCodeGenerator.h (removed)<br>
@@ -1,236 +0,0 @@<br>
-//===-LTOCodeGenerator.h - LLVM Link Time Optimizer -----------------------===//<br>
-//<br>
-//                     The LLVM Compiler Infrastructure<br>
-//<br>
-// This file is distributed under the University of Illinois Open Source<br>
-// License. See LICENSE.TXT for details.<br>
-//<br>
-//===----------------------------------------------------------------------===//<br>
-//<br>
-// This file declares the LTOCodeGenerator class.<br>
-//<br>
-//   LTO compilation consists of three phases: Pre-IPO, IPO and Post-IPO.<br>
-//<br>
-//   The Pre-IPO phase compiles source code into bitcode file. The resulting<br>
-// bitcode files, along with object files and libraries, will be fed to the<br>
-// linker to through the IPO and Post-IPO phases. By using obj-file extension,<br>
-// the resulting bitcode file disguises itself as an object file, and therefore<br>
-// obviates the need of writing a special set of the make-rules only for LTO<br>
-// compilation.<br>
-//<br>
-//   The IPO phase perform inter-procedural analyses and optimizations, and<br>
-// the Post-IPO consists two sub-phases: intra-procedural scalar optimizations<br>
-// (SOPT), and intra-procedural target-dependent code generator (CG).<br>
-//<br>
-//   As of this writing, we don't separate IPO and the Post-IPO SOPT. They<br>
-// are intermingled together, and are driven by a single pass manager (see<br>
-// PassManagerBuilder::populateLTOPassManager()).<br>
-//<br>
-//   The "LTOCodeGenerator" is the driver for the IPO and Post-IPO stages.<br>
-// The "CodeGenerator" here is bit confusing. Don't confuse the "CodeGenerator"<br>
-// with the machine specific code generator.<br>
-//<br>
-//===----------------------------------------------------------------------===//<br>
-<br>
-#ifndef LLVM_LTO_LTOCODEGENERATOR_H<br>
-#define LLVM_LTO_LTOCODEGENERATOR_H<br>
-<br>
-#include "llvm-c/lto.h"<br>
-#include "llvm/ADT/SmallPtrSet.h"<br>
-#include "llvm/ADT/StringMap.h"<br>
-#include "llvm/ADT/StringSet.h"<br>
-#include "llvm/IR/GlobalValue.h"<br>
-#include "llvm/IR/Module.h"<br>
-#include "llvm/Target/TargetMachine.h"<br>
-#include "llvm/Target/TargetOptions.h"<br>
-#include <string><br>
-#include <vector><br>
-<br>
-namespace llvm {<br>
-template <typename T> class ArrayRef;<br>
-  class LLVMContext;<br>
-  class DiagnosticInfo;<br>
-  class Linker;<br>
-  class Mangler;<br>
-  class MemoryBuffer;<br>
-  class TargetLibraryInfo;<br>
-  class TargetMachine;<br>
-  class raw_ostream;<br>
-  class raw_pwrite_stream;<br>
-<br>
-//===----------------------------------------------------------------------===//<br>
-/// C++ class which implements the opaque lto_code_gen_t type.<br>
-///<br>
-struct LTOCodeGenerator {<br>
-  static const char *getVersionString();<br>
-<br>
-  LTOCodeGenerator(LLVMContext &Context);<br>
-  ~LTOCodeGenerator();<br>
-<br>
-  /// Merge given module.  Return true on success.<br>
-  ///<br>
-  /// Resets \a HasVerifiedInput.<br>
-  bool addModule(struct LTOModule *);<br>
-<br>
-  /// Set the destination module.<br>
-  ///<br>
-  /// Resets \a HasVerifiedInput.<br>
-  void setModule(std::unique_ptr<LTOModule> M);<br>
-<br>
-  void setTargetOptions(const TargetOptions &Options);<br>
-  void setDebugInfo(lto_debug_model);<br>
-  void setCodePICModel(Optional<Reloc::Model> Model) { RelocModel = Model; }<br>
-<br>
-  /// Set the file type to be emitted (assembly or object code).<br>
-  /// The default is TargetMachine::CGFT_ObjectFile.<br>
-  void setFileType(TargetMachine::CodeGenFileType FT) { FileType = FT; }<br>
-<br>
-  void setCpu(const char *MCpu) { this->MCpu = MCpu; }<br>
-  void setAttr(const char *MAttr) { this->MAttr = MAttr; }<br>
-  void setOptLevel(unsigned OptLevel);<br>
-<br>
-  void setShouldInternalize(bool Value) { ShouldInternalize = Value; }<br>
-  void setShouldEmbedUselists(bool Value) { ShouldEmbedUselists = Value; }<br>
-<br>
-  /// Restore linkage of globals<br>
-  ///<br>
-  /// When set, the linkage of globals will be restored prior to code<br>
-  /// generation. That is, a global symbol that had external linkage prior to<br>
-  /// LTO will be emitted with external linkage again; and a local will remain<br>
-  /// local. Note that this option only affects the end result - globals may<br>
-  /// still be internalized in the process of LTO and may be modified and/or<br>
-  /// deleted where legal.<br>
-  ///<br>
-  /// The default behavior will internalize globals (unless on the preserve<br>
-  /// list) and, if parallel code generation is enabled, will externalize<br>
-  /// all locals.<br>
-  void setShouldRestoreGlobalsLinkage(bool Value) {<br>
-    ShouldRestoreGlobalsLinkage = Value;<br>
-  }<br>
-<br>
-  void addMustPreserveSymbol(StringRef Sym) { MustPreserveSymbols[Sym] = 1; }<br>
-<br>
-  /// Pass options to the driver and optimization passes.<br>
-  ///<br>
-  /// These options are not necessarily for debugging purpose (the function<br>
-  /// name is misleading).  This function should be called before<br>
-  /// LTOCodeGenerator::compilexxx(), and<br>
-  /// LTOCodeGenerator::writeMergedModules().<br>
-  void setCodeGenDebugOptions(const char *Opts);<br>
-<br>
-  /// Parse the options set in setCodeGenDebugOptions.<br>
-  ///<br>
-  /// Like \a setCodeGenDebugOptions(), this must be called before<br>
-  /// LTOCodeGenerator::compilexxx() and<br>
-  /// LTOCodeGenerator::writeMergedModules().<br>
-  void parseCodeGenDebugOptions();<br>
-<br>
-  /// Write the merged module to the file specified by the given path.  Return<br>
-  /// true on success.<br>
-  ///<br>
-  /// Calls \a verifyMergedModuleOnce().<br>
-  bool writeMergedModules(const char *Path);<br>
-<br>
-  /// Compile the merged module into a *single* output file; the path to output<br>
-  /// file is returned to the caller via argument "name". Return true on<br>
-  /// success.<br>
-  ///<br>
-  /// \note It is up to the linker to remove the intermediate output file.  Do<br>
-  /// not try to remove the object file in LTOCodeGenerator's destructor as we<br>
-  /// don't who (LTOCodeGenerator or the output file) will last longer.<br>
-  bool compile_to_file(const char **Name, bool DisableVerify,<br>
-                       bool DisableInline, bool DisableGVNLoadPRE,<br>
-                       bool DisableVectorization);<br>
-<br>
-  /// As with compile_to_file(), this function compiles the merged module into<br>
-  /// single output file. Instead of returning the output file path to the<br>
-  /// caller (linker), it brings the output to a buffer, and returns the buffer<br>
-  /// to the caller. This function should delete the intermediate file once<br>
-  /// its content is brought to memory. Return NULL if the compilation was not<br>
-  /// successful.<br>
-  std::unique_ptr<MemoryBuffer> compile(bool DisableVerify, bool DisableInline,<br>
-                                        bool DisableGVNLoadPRE,<br>
-                                        bool DisableVectorization);<br>
-<br>
-  /// Optimizes the merged module.  Returns true on success.<br>
-  ///<br>
-  /// Calls \a verifyMergedModuleOnce().<br>
-  bool optimize(bool DisableVerify, bool DisableInline, bool DisableGVNLoadPRE,<br>
-                bool DisableVectorization);<br>
-<br>
-  /// Compiles the merged optimized module into a single output file. It brings<br>
-  /// the output to a buffer, and returns the buffer to the caller. Return NULL<br>
-  /// if the compilation was not successful.<br>
-  std::unique_ptr<MemoryBuffer> compileOptimized();<br>
-<br>
-  /// Compile the merged optimized module into out.size() output files each<br>
-  /// representing a linkable partition of the module. If out contains more<br>
-  /// than one element, code generation is done in parallel with out.size()<br>
-  /// threads.  Output files will be written to members of out. Returns true on<br>
-  /// success.<br>
-  ///<br>
-  /// Calls \a verifyMergedModuleOnce().<br>
-  bool compileOptimized(ArrayRef<raw_pwrite_stream *> Out);<br>
-<br>
-  void setDiagnosticHandler(lto_diagnostic_handler_t, void *);<br>
-<br>
-  LLVMContext &getContext() { return Context; }<br>
-<br>
-  void resetMergedModule() { MergedModule.reset(); }<br>
-<br>
-private:<br>
-  void initializeLTOPasses();<br>
-<br>
-  /// Verify the merged module on first call.<br>
-  ///<br>
-  /// Sets \a HasVerifiedInput on first call and doesn't run again on the same<br>
-  /// input.<br>
-  void verifyMergedModuleOnce();<br>
-<br>
-  bool compileOptimizedToFile(const char **Name);<br>
-  void restoreLinkageForExternals();<br>
-  void applyScopeRestrictions();<br>
-  void preserveDiscardableGVs(<br>
-      Module &TheModule,<br>
-      llvm::function_ref<bool(const GlobalValue &)> mustPreserveGV);<br>
-<br>
-  bool determineTarget();<br>
-  std::unique_ptr<TargetMachine> createTargetMachine();<br>
-<br>
-  static void DiagnosticHandler(const DiagnosticInfo &DI, void *Context);<br>
-<br>
-  void DiagnosticHandler2(const DiagnosticInfo &DI);<br>
-<br>
-  void emitError(const std::string &ErrMsg);<br>
-  void emitWarning(const std::string &ErrMsg);<br>
-<br>
-  LLVMContext &Context;<br>
-  std::unique_ptr<Module> MergedModule;<br>
-  std::unique_ptr<Linker> TheLinker;<br>
-  std::unique_ptr<TargetMachine> TargetMach;<br>
-  bool EmitDwarfDebugInfo = false;<br>
-  bool ScopeRestrictionsDone = false;<br>
-  bool HasVerifiedInput = false;<br>
-  Optional<Reloc::Model> RelocModel;<br>
-  StringSet<> MustPreserveSymbols;<br>
-  StringSet<> AsmUndefinedRefs;<br>
-  StringMap<GlobalValue::LinkageTypes> ExternalSymbols;<br>
-  std::vector<std::string> CodegenOptions;<br>
-  std::string FeatureStr;<br>
-  std::string MCpu;<br>
-  std::string MAttr;<br>
-  std::string NativeObjectPath;<br>
-  TargetOptions Options;<br>
-  CodeGenOpt::Level CGOptLevel = CodeGenOpt::Default;<br>
-  const Target *MArch = nullptr;<br>
-  std::string TripleStr;<br>
-  unsigned OptLevel = 2;<br>
-  lto_diagnostic_handler_t DiagHandler = nullptr;<br>
-  void *DiagContext = nullptr;<br>
-  bool ShouldInternalize = true;<br>
-  bool ShouldEmbedUselists = false;<br>
-  bool ShouldRestoreGlobalsLinkage = false;<br>
-  TargetMachine::CodeGenFileType FileType = TargetMachine::CGFT_ObjectFile;<br>
-};<br>
-}<br>
-#endif<br>
<br>
Removed: llvm/trunk/include/llvm/LTO/LTOModule.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/LTO/LTOModule.h?rev=275475&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/LTO/LTOModule.h?rev=275475&view=auto</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/LTO/LTOModule.h (original)<br>
+++ llvm/trunk/include/llvm/LTO/LTOModule.h (removed)<br>
@@ -1,212 +0,0 @@<br>
-//===-LTOModule.h - LLVM Link Time Optimizer ------------------------------===//<br>
-//<br>
-//                     The LLVM Compiler Infrastructure<br>
-//<br>
-// This file is distributed under the University of Illinois Open Source<br>
-// License. See LICENSE.TXT for details.<br>
-//<br>
-//===----------------------------------------------------------------------===//<br>
-//<br>
-// This file declares the LTOModule class.<br>
-//<br>
-//===----------------------------------------------------------------------===//<br>
-<br>
-#ifndef LLVM_LTO_LTOMODULE_H<br>
-#define LLVM_LTO_LTOMODULE_H<br>
-<br>
-#include "llvm-c/lto.h"<br>
-#include "llvm/ADT/StringMap.h"<br>
-#include "llvm/ADT/StringSet.h"<br>
-#include "llvm/IR/Module.h"<br>
-#include "llvm/Object/IRObjectFile.h"<br>
-#include "llvm/Target/TargetMachine.h"<br>
-#include <string><br>
-#include <vector><br>
-<br>
-// Forward references to llvm classes.<br>
-namespace llvm {<br>
-  class Function;<br>
-  class GlobalValue;<br>
-  class MemoryBuffer;<br>
-  class TargetOptions;<br>
-  class Value;<br>
-<br>
-//===----------------------------------------------------------------------===//<br>
-/// C++ class which implements the opaque lto_module_t type.<br>
-///<br>
-struct LTOModule {<br>
-private:<br>
-  struct NameAndAttributes {<br>
-    const char        *name;<br>
-    uint32_t           attributes;<br>
-    bool               isFunction;<br>
-    const GlobalValue *symbol;<br>
-  };<br>
-<br>
-  std::unique_ptr<LLVMContext> OwnedContext;<br>
-<br>
-  std::string LinkerOpts;<br>
-<br>
-  std::unique_ptr<object::IRObjectFile> IRFile;<br>
-  std::unique_ptr<TargetMachine> _target;<br>
-  std::vector<NameAndAttributes> _symbols;<br>
-<br>
-  // _defines and _undefines only needed to disambiguate tentative definitions<br>
-  StringSet<>                             _defines;<br>
-  StringMap<NameAndAttributes> _undefines;<br>
-  std::vector<const char*>                _asm_undefines;<br>
-<br>
-  LTOModule(std::unique_ptr<object::IRObjectFile> Obj, TargetMachine *TM);<br>
-<br>
-public:<br>
-  ~LTOModule();<br>
-<br>
-  /// Returns 'true' if the file or memory contents is LLVM bitcode.<br>
-  static bool isBitcodeFile(const void *mem, size_t length);<br>
-  static bool isBitcodeFile(const char *path);<br>
-<br>
-  /// Returns 'true' if the Module is produced for ThinLTO.<br>
-  bool isThinLTO();<br>
-<br>
-  /// Returns 'true' if the memory buffer is LLVM bitcode for the specified<br>
-  /// triple.<br>
-  static bool isBitcodeForTarget(MemoryBuffer *memBuffer,<br>
-                                 StringRef triplePrefix);<br>
-<br>
-  /// Returns a string representing the producer identification stored in the<br>
-  /// bitcode, or "" if the bitcode does not contains any.<br>
-  ///<br>
-  static std::string getProducerString(MemoryBuffer *Buffer);<br>
-<br>
-  /// Create a MemoryBuffer from a memory range with an optional name.<br>
-  static std::unique_ptr<MemoryBuffer><br>
-  makeBuffer(const void *mem, size_t length, StringRef name = "");<br>
-<br>
-  /// Create an LTOModule. N.B. These methods take ownership of the buffer. The<br>
-  /// caller must have initialized the Targets, the TargetMCs, the AsmPrinters,<br>
-  /// and the AsmParsers by calling:<br>
-  ///<br>
-  /// InitializeAllTargets();<br>
-  /// InitializeAllTargetMCs();<br>
-  /// InitializeAllAsmPrinters();<br>
-  /// InitializeAllAsmParsers();<br>
-  static ErrorOr<std::unique_ptr<LTOModule>><br>
-  createFromFile(LLVMContext &Context, const char *path,<br>
-                 const TargetOptions &options);<br>
-  static ErrorOr<std::unique_ptr<LTOModule>><br>
-  createFromOpenFile(LLVMContext &Context, int fd, const char *path,<br>
-                     size_t size, const TargetOptions &options);<br>
-  static ErrorOr<std::unique_ptr<LTOModule>><br>
-  createFromOpenFileSlice(LLVMContext &Context, int fd, const char *path,<br>
-                          size_t map_size, off_t offset,<br>
-                          const TargetOptions &options);<br>
-  static ErrorOr<std::unique_ptr<LTOModule>><br>
-  createFromBuffer(LLVMContext &Context, const void *mem, size_t length,<br>
-                   const TargetOptions &options, StringRef path = "");<br>
-  static ErrorOr<std::unique_ptr<LTOModule>><br>
-  createInLocalContext(std::unique_ptr<LLVMContext> Context, const void *mem,<br>
-                       size_t length, const TargetOptions &options,<br>
-                       StringRef path);<br>
-<br>
-  const Module &getModule() const {<br>
-    return const_cast<LTOModule*>(this)->getModule();<br>
-  }<br>
-  Module &getModule() {<br>
-    return IRFile->getModule();<br>
-  }<br>
-<br>
-  std::unique_ptr<Module> takeModule() { return IRFile->takeModule(); }<br>
-<br>
-  /// Return the Module's target triple.<br>
-  const std::string &getTargetTriple() {<br>
-    return getModule().getTargetTriple();<br>
-  }<br>
-<br>
-  /// Set the Module's target triple.<br>
-  void setTargetTriple(StringRef Triple) {<br>
-    getModule().setTargetTriple(Triple);<br>
-  }<br>
-<br>
-  /// Get the number of symbols<br>
-  uint32_t getSymbolCount() {<br>
-    return _symbols.size();<br>
-  }<br>
-<br>
-  /// Get the attributes for a symbol at the specified index.<br>
-  lto_symbol_attributes getSymbolAttributes(uint32_t index) {<br>
-    if (index < _symbols.size())<br>
-      return lto_symbol_attributes(_symbols[index].attributes);<br>
-    return lto_symbol_attributes(0);<br>
-  }<br>
-<br>
-  /// Get the name of the symbol at the specified index.<br>
-  const char *getSymbolName(uint32_t index) {<br>
-    if (index < _symbols.size())<br>
-      return _symbols[index].name;<br>
-    return nullptr;<br>
-  }<br>
-<br>
-  const GlobalValue *getSymbolGV(uint32_t index) {<br>
-    if (index < _symbols.size())<br>
-      return _symbols[index].symbol;<br>
-    return nullptr;<br>
-  }<br>
-<br>
-  const char *getLinkerOpts() {<br>
-    return LinkerOpts.c_str();<br>
-  }<br>
-<br>
-  const std::vector<const char*> &getAsmUndefinedRefs() {<br>
-    return _asm_undefines;<br>
-  }<br>
-<br>
-private:<br>
-  /// Parse metadata from the module<br>
-  // FIXME: it only parses "Linker Options" metadata at the moment<br>
-  void parseMetadata();<br>
-<br>
-  /// Parse the symbols from the module and model-level ASM and add them to<br>
-  /// either the defined or undefined lists.<br>
-  void parseSymbols();<br>
-<br>
-  /// Add a symbol which isn't defined just yet to a list to be resolved later.<br>
-  void addPotentialUndefinedSymbol(const object::BasicSymbolRef &Sym,<br>
-                                   bool isFunc);<br>
-<br>
-  /// Add a defined symbol to the list.<br>
-  void addDefinedSymbol(const char *Name, const GlobalValue *def,<br>
-                        bool isFunction);<br>
-<br>
-  /// Add a data symbol as defined to the list.<br>
-  void addDefinedDataSymbol(const object::BasicSymbolRef &Sym);<br>
-  void addDefinedDataSymbol(const char*Name, const GlobalValue *v);<br>
-<br>
-  /// Add a function symbol as defined to the list.<br>
-  void addDefinedFunctionSymbol(const object::BasicSymbolRef &Sym);<br>
-  void addDefinedFunctionSymbol(const char *Name, const Function *F);<br>
-<br>
-  /// Add a global symbol from module-level ASM to the defined list.<br>
-  void addAsmGlobalSymbol(const char *, lto_symbol_attributes scope);<br>
-<br>
-  /// Add a global symbol from module-level ASM to the undefined list.<br>
-  void addAsmGlobalSymbolUndef(const char *);<br>
-<br>
-  /// Parse i386/ppc ObjC class data structure.<br>
-  void addObjCClass(const GlobalVariable *clgv);<br>
-<br>
-  /// Parse i386/ppc ObjC category data structure.<br>
-  void addObjCCategory(const GlobalVariable *clgv);<br>
-<br>
-  /// Parse i386/ppc ObjC class list data structure.<br>
-  void addObjCClassRef(const GlobalVariable *clgv);<br>
-<br>
-  /// Get string that the data pointer points to.<br>
-  bool objcClassNameFromExpression(const Constant *c, std::string &name);<br>
-<br>
-  /// Create an LTOModule (private version).<br>
-  static ErrorOr<std::unique_ptr<LTOModule>><br>
-  makeLTOModule(MemoryBufferRef Buffer, const TargetOptions &options,<br>
-                LLVMContext &Context, bool ShouldBeLazy);<br>
-};<br>
-}<br>
-#endif<br>
<br>
Removed: llvm/trunk/include/llvm/LTO/ThinLTOCodeGenerator.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/LTO/ThinLTOCodeGenerator.h?rev=275475&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/LTO/ThinLTOCodeGenerator.h?rev=275475&view=auto</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/LTO/ThinLTOCodeGenerator.h (original)<br>
+++ llvm/trunk/include/llvm/LTO/ThinLTOCodeGenerator.h (removed)<br>
@@ -1,276 +0,0 @@<br>
-//===-ThinLTOCodeGenerator.h - LLVM Link Time Optimizer -------------------===//<br>
-//<br>
-//                     The LLVM Compiler Infrastructure<br>
-//<br>
-// This file is distributed under the University of Illinois Open Source<br>
-// License. See LICENSE.TXT for details.<br>
-//<br>
-//===----------------------------------------------------------------------===//<br>
-//<br>
-// This file declares the ThinLTOCodeGenerator class, similar to the<br>
-// LTOCodeGenerator but for the ThinLTO scheme. It provides an interface for<br>
-// linker plugin.<br>
-//<br>
-//===----------------------------------------------------------------------===//<br>
-<br>
-#ifndef LLVM_LTO_THINLTOCODEGENERATOR_H<br>
-#define LLVM_LTO_THINLTOCODEGENERATOR_H<br>
-<br>
-#include "llvm-c/lto.h"<br>
-#include "llvm/ADT/StringSet.h"<br>
-#include "llvm/ADT/Triple.h"<br>
-#include "llvm/IR/ModuleSummaryIndex.h"<br>
-#include "llvm/Support/CodeGen.h"<br>
-#include "llvm/Support/MemoryBuffer.h"<br>
-#include "llvm/Target/TargetOptions.h"<br>
-<br>
-#include <string><br>
-<br>
-namespace llvm {<br>
-class StringRef;<br>
-class LLVMContext;<br>
-class TargetMachine;<br>
-<br>
-/// Helper to gather options relevant to the target machine creation<br>
-struct TargetMachineBuilder {<br>
-  Triple TheTriple;<br>
-  std::string MCpu;<br>
-  std::string MAttr;<br>
-  TargetOptions Options;<br>
-  Optional<Reloc::Model> RelocModel;<br>
-  CodeGenOpt::Level CGOptLevel = CodeGenOpt::Default;<br>
-<br>
-  std::unique_ptr<TargetMachine> create() const;<br>
-};<br>
-<br>
-/// This class define an interface similar to the LTOCodeGenerator, but adapted<br>
-/// for ThinLTO processing.<br>
-/// The ThinLTOCodeGenerator is not intended to be reuse for multiple<br>
-/// compilation: the model is that the client adds modules to the generator and<br>
-/// ask to perform the ThinLTO optimizations / codegen, and finally destroys the<br>
-/// codegenerator.<br>
-class ThinLTOCodeGenerator {<br>
-public:<br>
-  /// Add given module to the code generator.<br>
-  void addModule(StringRef Identifier, StringRef Data);<br>
-<br>
-  /**<br>
-   * Adds to a list of all global symbols that must exist in the final generated<br>
-   * code. If a symbol is not listed there, it will be optimized away if it is<br>
-   * inlined into every usage.<br>
-   */<br>
-  void preserveSymbol(StringRef Name);<br>
-<br>
-  /**<br>
-   * Adds to a list of all global symbols that are cross-referenced between<br>
-   * ThinLTO files. If the ThinLTO CodeGenerator can ensure that every<br>
-   * references from a ThinLTO module to this symbol is optimized away, then<br>
-   * the symbol can be discarded.<br>
-   */<br>
-  void crossReferenceSymbol(StringRef Name);<br>
-<br>
-  /**<br>
-   * Process all the modules that were added to the code generator in parallel.<br>
-   *<br>
-   * Client can access the resulting object files using getProducedBinaries()<br>
-   */<br>
-  void run();<br>
-<br>
-  /**<br>
-   * Return the "in memory" binaries produced by the code generator.<br>
-   */<br>
-  std::vector<std::unique_ptr<MemoryBuffer>> &getProducedBinaries() {<br>
-    return ProducedBinaries;<br>
-  }<br>
-<br>
-  /**<br>
-   * \defgroup Options setters<br>
-   * @{<br>
-   */<br>
-<br>
-  /**<br>
-   * \defgroup Cache controlling options<br>
-   *<br>
-   * These entry points control the ThinLTO cache. The cache is intended to<br>
-   * support incremental build, and thus needs to be persistent accross build.<br>
-   * The client enabled the cache by supplying a path to an existing directory.<br>
-   * The code generator will use this to store objects files that may be reused<br>
-   * during a subsequent build.<br>
-   * To avoid filling the disk space, a few knobs are provided:<br>
-   *  - The pruning interval limit the frequency at which the garbage collector<br>
-   *    will try to scan the cache directory to prune it from expired entries.<br>
-   *    Setting to -1 disable the pruning (default).<br>
-   *  - The pruning expiration time indicates to the garbage collector how old<br>
-   *    an entry needs to be to be removed.<br>
-   *  - Finally, the garbage collector can be instructed to prune the cache till<br>
-   *    the occupied space goes below a threshold.<br>
-   * @{<br>
-   */<br>
-<br>
-  struct CachingOptions {<br>
-    std::string Path;                    // Path to the cache, empty to disable.<br>
-    int PruningInterval = 1200;          // seconds, -1 to disable pruning.<br>
-    unsigned int Expiration = 7 * 24 * 3600;     // seconds (1w default).<br>
-    unsigned MaxPercentageOfAvailableSpace = 75; // percentage.<br>
-  };<br>
-<br>
-  /// Provide a path to a directory where to store the cached files for<br>
-  /// incremental build.<br>
-  void setCacheDir(std::string Path) { CacheOptions.Path = std::move(Path); }<br>
-<br>
-  /// Cache policy: interval (seconds) between two prune of the cache. Set to a<br>
-  /// negative value (default) to disable pruning. A value of 0 will be ignored.<br>
-  void setCachePruningInterval(int Interval) {<br>
-    if (Interval)<br>
-      CacheOptions.PruningInterval = Interval;<br>
-  }<br>
-<br>
-  /// Cache policy: expiration (in seconds) for an entry.<br>
-  /// A value of 0 will be ignored.<br>
-  void setCacheEntryExpiration(unsigned Expiration) {<br>
-    if (Expiration)<br>
-      CacheOptions.Expiration = Expiration;<br>
-  }<br>
-<br>
-  /**<br>
-   * Sets the maximum cache size that can be persistent across build, in terms<br>
-   * of percentage of the available space on the the disk. Set to 100 to<br>
-   * indicate no limit, 50 to indicate that the cache size will not be left over<br>
-   * half the available space. A value over 100 will be reduced to 100, and a<br>
-   * value of 0 will be ignored.<br>
-   *<br>
-   *<br>
-   * The formula looks like:<br>
-   *  AvailableSpace = FreeSpace + ExistingCacheSize<br>
-   *  NewCacheSize = AvailableSpace * P/100<br>
-   *<br>
-   */<br>
-  void setMaxCacheSizeRelativeToAvailableSpace(unsigned Percentage) {<br>
-    if (Percentage)<br>
-      CacheOptions.MaxPercentageOfAvailableSpace = Percentage;<br>
-  }<br>
-<br>
-  /**@}*/<br>
-<br>
-  /// Set the path to a directory where to save temporaries at various stages of<br>
-  /// the processing.<br>
-  void setSaveTempsDir(std::string Path) { SaveTempsDir = std::move(Path); }<br>
-<br>
-  /// CPU to use to initialize the TargetMachine<br>
-  void setCpu(std::string Cpu) { TMBuilder.MCpu = std::move(Cpu); }<br>
-<br>
-  /// Subtarget attributes<br>
-  void setAttr(std::string MAttr) { TMBuilder.MAttr = std::move(MAttr); }<br>
-<br>
-  /// TargetMachine options<br>
-  void setTargetOptions(TargetOptions Options) {<br>
-    TMBuilder.Options = std::move(Options);<br>
-  }<br>
-<br>
-  /// CodeModel<br>
-  void setCodePICModel(Optional<Reloc::Model> Model) {<br>
-    TMBuilder.RelocModel = Model;<br>
-  }<br>
-<br>
-  /// CodeGen optimization level<br>
-  void setCodeGenOptLevel(CodeGenOpt::Level CGOptLevel) {<br>
-    TMBuilder.CGOptLevel = CGOptLevel;<br>
-  }<br>
-<br>
-  /// Disable CodeGen, only run the stages till codegen and stop. The output<br>
-  /// will be bitcode.<br>
-  void disableCodeGen(bool Disable) { DisableCodeGen = Disable; }<br>
-<br>
-  /// Perform CodeGen only: disable all other stages.<br>
-  void setCodeGenOnly(bool CGOnly) { CodeGenOnly = CGOnly; }<br>
-<br>
-  /**@}*/<br>
-<br>
-  /**<br>
-   * \defgroup Set of APIs to run individual stages in isolation.<br>
-   * @{<br>
-   */<br>
-<br>
-  /**<br>
-   * Produce the combined summary index from all the bitcode files:<br>
-   * "thin-link".<br>
-   */<br>
-  std::unique_ptr<ModuleSummaryIndex> linkCombinedIndex();<br>
-<br>
-  /**<br>
-   * Perform promotion and renaming of exported internal functions,<br>
-   * and additionally resolve weak and linkonce symbols.<br>
-   * Index is updated to reflect linkage changes from weak resolution.<br>
-   */<br>
-  void promote(Module &Module, ModuleSummaryIndex &Index);<br>
-<br>
-  /**<br>
-   * Compute and emit the imported files for module at \p ModulePath.<br>
-   */<br>
-  static void emitImports(StringRef ModulePath, StringRef OutputName,<br>
-                          ModuleSummaryIndex &Index);<br>
-<br>
-  /**<br>
-   * Perform cross-module importing for the module identified by<br>
-   * ModuleIdentifier.<br>
-   */<br>
-  void crossModuleImport(Module &Module, ModuleSummaryIndex &Index);<br>
-<br>
-  /**<br>
-   * Compute the list of summaries needed for importing into module.<br>
-   */<br>
-  static void gatherImportedSummariesForModule(<br>
-      StringRef ModulePath, ModuleSummaryIndex &Index,<br>
-      std::map<std::string, GVSummaryMapTy> &ModuleToSummariesForIndex);<br>
-<br>
-  /**<br>
-   * Perform internalization. Index is updated to reflect linkage changes.<br>
-   */<br>
-  void internalize(Module &Module, ModuleSummaryIndex &Index);<br>
-<br>
-  /**<br>
-   * Perform post-importing ThinLTO optimizations.<br>
-   */<br>
-  void optimize(Module &Module);<br>
-<br>
-  /**<br>
-   * Perform ThinLTO CodeGen.<br>
-   */<br>
-  std::unique_ptr<MemoryBuffer> codegen(Module &Module);<br>
-<br>
-  /**@}*/<br>
-<br>
-private:<br>
-  /// Helper factory to build a TargetMachine<br>
-  TargetMachineBuilder TMBuilder;<br>
-<br>
-  /// Vector holding the in-memory buffer containing the produced binaries.<br>
-  std::vector<std::unique_ptr<MemoryBuffer>> ProducedBinaries;<br>
-<br>
-  /// Vector holding the input buffers containing the bitcode modules to<br>
-  /// process.<br>
-  std::vector<MemoryBufferRef> Modules;<br>
-<br>
-  /// Set of symbols that need to be preserved outside of the set of bitcode<br>
-  /// files.<br>
-  StringSet<> PreservedSymbols;<br>
-<br>
-  /// Set of symbols that are cross-referenced between bitcode files.<br>
-  StringSet<> CrossReferencedSymbols;<br>
-<br>
-  /// Control the caching behavior.<br>
-  CachingOptions CacheOptions;<br>
-<br>
-  /// Path to a directory to save the temporary bitcode files.<br>
-  std::string SaveTempsDir;<br>
-<br>
-  /// Flag to enable/disable CodeGen. When set to true, the process stops after<br>
-  /// optimizations and a bitcode is produced.<br>
-  bool DisableCodeGen = false;<br>
-<br>
-  /// Flag to indicate that only the CodeGen will be performed, no cross-module<br>
-  /// importing or optimization.<br>
-  bool CodeGenOnly = false;<br>
-};<br>
-}<br>
-#endif<br>
<br>
Removed: llvm/trunk/include/llvm/LTO/UpdateCompilerUsed.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/LTO/UpdateCompilerUsed.h?rev=275475&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/LTO/UpdateCompilerUsed.h?rev=275475&view=auto</a><br>
==============================================================================<br>
--- llvm/trunk/include/llvm/LTO/UpdateCompilerUsed.h (original)<br>
+++ llvm/trunk/include/llvm/LTO/UpdateCompilerUsed.h (removed)<br>
@@ -1,32 +0,0 @@<br>
-//==------ UpdateCompilerUsed.h - LLVM Link Time Optimizer Utility --------===//<br>
-//<br>
-//                     The LLVM Compiler Infrastructure<br>
-//<br>
-// This file is distributed under the University of Illinois Open Source<br>
-// License. See LICENSE.TXT for details.<br>
-//<br>
-//===----------------------------------------------------------------------===//<br>
-//<br>
-// This file declares a helper class to update llvm.compiler_used metadata.<br>
-//<br>
-//===----------------------------------------------------------------------===//<br>
-<br>
-#ifndef LLVM_LTO_UPDATE_COMPILER_USED_H<br>
-#define LLVM_LTO_UPDATE_COMPILER_USED_H<br>
-<br>
-#include "llvm/ADT/StringSet.h"<br>
-#include "llvm/IR/GlobalValue.h"<br>
-<br>
-namespace llvm {<br>
-class Module;<br>
-class TargetMachine;<br>
-<br>
-/// Find all globals in \p TheModule that are referenced in<br>
-/// \p AsmUndefinedRefs, as well as the user-supplied functions definitions that<br>
-/// are also libcalls, and create or update the magic "llvm.compiler_used"<br>
-/// global in \p TheModule.<br>
-void updateCompilerUsed(Module &TheModule, const TargetMachine &TM,<br>
-                        const StringSet<> &AsmUndefinedRefs);<br>
-}<br>
-<br>
-#endif // LLVM_LTO_UPDATE_COMPILER_USED_H<br>
<br>
Copied: llvm/trunk/include/llvm/LTO/legacy/LTOCodeGenerator.h (from r275474, llvm/trunk/include/llvm/LTO/LTOCodeGenerator.h)<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/LTO/legacy/LTOCodeGenerator.h?p2=llvm/trunk/include/llvm/LTO/legacy/LTOCodeGenerator.h&p1=llvm/trunk/include/llvm/LTO/LTOCodeGenerator.h&r1=275474&r2=275476&rev=275476&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/LTO/legacy/LTOCodeGenerator.h?p2=llvm/trunk/include/llvm/LTO/legacy/LTOCodeGenerator.h&p1=llvm/trunk/include/llvm/LTO/LTOCodeGenerator.h&r1=275474&r2=275476&rev=275476&view=diff</a><br>
==============================================================================<br>
    (empty)<br>
<br>
Copied: llvm/trunk/include/llvm/LTO/legacy/LTOModule.h (from r275474, llvm/trunk/include/llvm/LTO/LTOModule.h)<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/LTO/legacy/LTOModule.h?p2=llvm/trunk/include/llvm/LTO/legacy/LTOModule.h&p1=llvm/trunk/include/llvm/LTO/LTOModule.h&r1=275474&r2=275476&rev=275476&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/LTO/legacy/LTOModule.h?p2=llvm/trunk/include/llvm/LTO/legacy/LTOModule.h&p1=llvm/trunk/include/llvm/LTO/LTOModule.h&r1=275474&r2=275476&rev=275476&view=diff</a><br>
==============================================================================<br>
    (empty)<br>
<br>
Copied: llvm/trunk/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h (from r275474, llvm/trunk/include/llvm/LTO/ThinLTOCodeGenerator.h)<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h?p2=llvm/trunk/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h&p1=llvm/trunk/include/llvm/LTO/ThinLTOCodeGenerator.h&r1=275474&r2=275476&rev=275476&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h?p2=llvm/trunk/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h&p1=llvm/trunk/include/llvm/LTO/ThinLTOCodeGenerator.h&r1=275474&r2=275476&rev=275476&view=diff</a><br>
==============================================================================<br>
    (empty)<br>
<br>
Copied: llvm/trunk/include/llvm/LTO/legacy/UpdateCompilerUsed.h (from r275474, llvm/trunk/include/llvm/LTO/UpdateCompilerUsed.h)<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/LTO/legacy/UpdateCompilerUsed.h?p2=llvm/trunk/include/llvm/LTO/legacy/UpdateCompilerUsed.h&p1=llvm/trunk/include/llvm/LTO/UpdateCompilerUsed.h&r1=275474&r2=275476&rev=275476&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/LTO/legacy/UpdateCompilerUsed.h?p2=llvm/trunk/include/llvm/LTO/legacy/UpdateCompilerUsed.h&p1=llvm/trunk/include/llvm/LTO/UpdateCompilerUsed.h&r1=275474&r2=275476&rev=275476&view=diff</a><br>
==============================================================================<br>
    (empty)<br>
<br>
Modified: llvm/trunk/lib/LTO/LTOCodeGenerator.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/LTO/LTOCodeGenerator.cpp?rev=275476&r1=275475&r2=275476&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/LTO/LTOCodeGenerator.cpp?rev=275476&r1=275475&r2=275476&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/LTO/LTOCodeGenerator.cpp (original)<br>
+++ llvm/trunk/lib/LTO/LTOCodeGenerator.cpp Thu Jul 14 16:21:16 2016<br>
@@ -12,8 +12,7 @@<br>
 //<br>
 //===----------------------------------------------------------------------===//<br>
<br>
-#include "llvm/LTO/LTOCodeGenerator.h"<br>
-#include "llvm/LTO/UpdateCompilerUsed.h"<br>
+#include "llvm/LTO/legacy/LTOCodeGenerator.h"<br>
<br>
 #include "llvm/ADT/Statistic.h"<br>
 #include "llvm/ADT/StringExtras.h"<br>
@@ -36,7 +35,8 @@<br>
 #include "llvm/IR/Module.h"<br>
 #include "llvm/IR/Verifier.h"<br>
 #include "llvm/InitializePasses.h"<br>
-#include "llvm/LTO/LTOModule.h"<br>
+#include "llvm/LTO/legacy/LTOModule.h"<br>
+#include "llvm/LTO/legacy/UpdateCompilerUsed.h"<br>
 #include "llvm/Linker/Linker.h"<br>
 #include "llvm/MC/MCAsmInfo.h"<br>
 #include "llvm/MC/MCContext.h"<br>
<br>
Modified: llvm/trunk/lib/LTO/LTOModule.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/LTO/LTOModule.cpp?rev=275476&r1=275475&r2=275476&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/LTO/LTOModule.cpp?rev=275476&r1=275475&r2=275476&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/LTO/LTOModule.cpp (original)<br>
+++ llvm/trunk/lib/LTO/LTOModule.cpp Thu Jul 14 16:21:16 2016<br>
@@ -12,7 +12,7 @@<br>
 //<br>
 //===----------------------------------------------------------------------===//<br>
<br>
-#include "llvm/LTO/LTOModule.h"<br>
+#include "llvm/LTO/legacy/LTOModule.h"<br>
 #include "llvm/ADT/Triple.h"<br>
 #include "llvm/Bitcode/ReaderWriter.h"<br>
 #include "llvm/CodeGen/Analysis.h"<br>
<br>
Modified: llvm/trunk/lib/LTO/ThinLTOCodeGenerator.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/LTO/ThinLTOCodeGenerator.cpp?rev=275476&r1=275475&r2=275476&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/LTO/ThinLTOCodeGenerator.cpp?rev=275476&r1=275475&r2=275476&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/LTO/ThinLTOCodeGenerator.cpp (original)<br>
+++ llvm/trunk/lib/LTO/ThinLTOCodeGenerator.cpp Thu Jul 14 16:21:16 2016<br>
@@ -12,7 +12,7 @@<br>
 //<br>
 //===----------------------------------------------------------------------===//<br>
<br>
-#include "llvm/LTO/ThinLTOCodeGenerator.h"<br>
+#include "llvm/LTO/legacy/ThinLTOCodeGenerator.h"<br>
<br>
 #ifdef HAVE_LLVM_REVISION<br>
 #include "LLVMLTORevision.h"<br>
<br>
Modified: llvm/trunk/lib/LTO/UpdateCompilerUsed.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/LTO/UpdateCompilerUsed.cpp?rev=275476&r1=275475&r2=275476&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/LTO/UpdateCompilerUsed.cpp?rev=275476&r1=275475&r2=275476&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/LTO/UpdateCompilerUsed.cpp (original)<br>
+++ llvm/trunk/lib/LTO/UpdateCompilerUsed.cpp Thu Jul 14 16:21:16 2016<br>
@@ -11,10 +11,10 @@<br>
 //<br>
 //===----------------------------------------------------------------------===//<br>
<br>
+#include "llvm/LTO/legacy/UpdateCompilerUsed.h"<br>
 #include "llvm/Analysis/TargetLibraryInfo.h"<br>
 #include "llvm/IR/LegacyPassManager.h"<br>
 #include "llvm/IR/Mangler.h"<br>
-#include "llvm/LTO/UpdateCompilerUsed.h"<br>
 #include "llvm/Target/TargetLowering.h"<br>
 #include "llvm/Target/TargetSubtargetInfo.h"<br>
 #include "llvm/Transforms/IPO/Internalize.h"<br>
<br>
Modified: llvm/trunk/tools/llvm-lto/llvm-lto.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-lto/llvm-lto.cpp?rev=275476&r1=275475&r2=275476&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-lto/llvm-lto.cpp?rev=275476&r1=275475&r2=275476&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/tools/llvm-lto/llvm-lto.cpp (original)<br>
+++ llvm/trunk/tools/llvm-lto/llvm-lto.cpp Thu Jul 14 16:21:16 2016<br>
@@ -19,9 +19,9 @@<br>
 #include "llvm/IR/LLVMContext.h"<br>
 #include "llvm/IR/Verifier.h"<br>
 #include "llvm/IRReader/IRReader.h"<br>
-#include "llvm/LTO/LTOCodeGenerator.h"<br>
-#include "llvm/LTO/LTOModule.h"<br>
-#include "llvm/LTO/ThinLTOCodeGenerator.h"<br>
+#include "llvm/LTO/legacy/LTOCodeGenerator.h"<br>
+#include "llvm/LTO/legacy/LTOModule.h"<br>
+#include "llvm/LTO/legacy/ThinLTOCodeGenerator.h"<br>
 #include "llvm/Object/ModuleSummaryIndexObjectFile.h"<br>
 #include "llvm/Support/CommandLine.h"<br>
 #include "llvm/Support/FileSystem.h"<br>
<br>
Modified: llvm/trunk/tools/lto/lto.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/lto/lto.cpp?rev=275476&r1=275475&r2=275476&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/lto/lto.cpp?rev=275476&r1=275475&r2=275476&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/tools/lto/lto.cpp (original)<br>
+++ llvm/trunk/tools/lto/lto.cpp Thu Jul 14 16:21:16 2016<br>
@@ -19,9 +19,9 @@<br>
 #include "llvm/IR/DiagnosticInfo.h"<br>
 #include "llvm/IR/DiagnosticPrinter.h"<br>
 #include "llvm/IR/LLVMContext.h"<br>
-#include "llvm/LTO/LTOCodeGenerator.h"<br>
-#include "llvm/LTO/LTOModule.h"<br>
-#include "llvm/LTO/ThinLTOCodeGenerator.h"<br>
+#include "llvm/LTO/legacy/LTOCodeGenerator.h"<br>
+#include "llvm/LTO/legacy/LTOModule.h"<br>
+#include "llvm/LTO/legacy/ThinLTOCodeGenerator.h"<br>
 #include "llvm/Support/MemoryBuffer.h"<br>
 #include "llvm/Support/Signals.h"<br>
 #include "llvm/Support/TargetSelect.h"<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">-- <div>Peter</div></div></div>
</div>