Make it possible to use the linker without destroying the source module. This is...
[oota-llvm.git] / include / llvm / Target / TargetLibraryInfo.h
index b11c24bffb5371f01bfde3e708a8d3c1d47e238c..02a1a3ca23a498adf076002aa70aafd0d0bcb345 100644 (file)
@@ -23,9 +23,21 @@ namespace llvm {
       // void *memcpy(void *s1, const void *s2, size_t n);
       memcpy,
       
+      // void *memmove(void *s1, const void *s2, size_t n);
+      memmove,
+      
       /// void memset_pattern16(void *b, const void *pattern16, size_t len);
       memset_pattern16,
       
+      /// int iprintf(const char *format, ...);
+      iprintf,
+      
+      /// int siprintf(char *str, const char *format, ...);
+      siprintf,
+      
+      /// int fiprintf(FILE *stream, const char *format, ...);
+      fiprintf,
+      
       NumLibFuncs
     };
   }
@@ -39,6 +51,7 @@ public:
   static char ID;
   TargetLibraryInfo();
   TargetLibraryInfo(const Triple &T);
+  explicit TargetLibraryInfo(const TargetLibraryInfo &TLI);
   
   /// has - This function is used by optimizations that want to match on or form
   /// a given library function.
@@ -55,6 +68,10 @@ public:
   void setAvailable(LibFunc::Func F) {
     AvailableArray[F/8] |= 1 << (F&7);
   }
+  
+  /// disableAllFunctions - This disables all builtins, which is used for
+  /// options like -fno-builtin.
+  void disableAllFunctions();
 };
 
 } // end namespace llvm