Let callers decide the sub-register index on the def operand of rematerialized instru...
[oota-llvm.git] / include / llvm / Linker.h
index 1e817b467432662f61003b851fba86362ad437c5..2d0c2cd96b76473369afe8d9c8ebae30ccea257f 100644 (file)
 #define LLVM_LINKER_H
 
 #include "llvm/System/Path.h"
-#include <vector>
 #include <memory>
+#include <vector>
 
 namespace llvm {
 
 class Module;
+class LLVMContext;
 
 /// This class provides the core functionality of linking in LLVM. It retains a
 /// Module object which is the composite of the modules and libraries linked
@@ -52,8 +53,8 @@ class Linker {
     /// linker.
     enum ControlFlags {
       Verbose       = 1, ///< Print to std::cerr what steps the linker is taking
-      QuietWarnings = 2, ///< Don't print errors and warnings to std::cerr.
-      QuietErrors   = 4  ///< Indicate that this link is for a native executable
+      QuietWarnings = 2, ///< Don't print warnings to std::cerr.
+      QuietErrors   = 4  ///< Don't print errors to std::cerr.
     };
 
   /// @}
@@ -66,6 +67,7 @@ class Linker {
     Linker(
         const std::string& progname, ///< name of tool running linker
         const std::string& modulename, ///< name of linker's end-result module
+        LLVMContext& C, ///< Context for global info
         unsigned Flags = 0  ///< ControlFlags (one or more |'d together)
     );
 
@@ -283,6 +285,7 @@ class Linker {
   /// @name Data
   /// @{
   private:
+    LLVMContext& Context; ///< The context for global information
     Module* Composite; ///< The composite module linked together
     std::vector<sys::Path> LibPaths; ///< The library search paths
     unsigned Flags;    ///< Flags to control optional behavior.