Factor out cycle-finder code and make it generic.
[oota-llvm.git] / include / llvm-c / Core.h
index 5d8cff414fde99e56c90cfe351b85ff2cc29acd1..d2d88454d711ee2d11f2750044970ddddda5726e 100644 (file)
@@ -115,6 +115,7 @@ typedef enum {
 
 typedef enum {
   LLVMExternalLinkage,    /**< Externally visible function */
+  LLVMAvailableExternallyLinkage,
   LLVMLinkOnceAnyLinkage, /**< Keep one copy of function when linking (inline)*/
   LLVMLinkOnceODRLinkage, /**< Same, but only replaced by something
                             equivalent. */
@@ -127,14 +128,10 @@ typedef enum {
   LLVMPrivateLinkage,     /**< Like Internal, but omit from symbol table */
   LLVMDLLImportLinkage,   /**< Function to be imported from DLL */
   LLVMDLLExportLinkage,   /**< Function to be accessible from DLL */
-  LLVMExternalWeakAnyLinkage,/**< ExternalWeak linkage description */
-  LLVMExternalWeakODRLinkage,/**< Same, but only replaced by something
-                               equivalent. */
+  LLVMExternalWeakLinkage,/**< ExternalWeak linkage description */
   LLVMGhostLinkage,       /**< Stand-in functions for streaming fns from
                                bitcode */
-  LLVMCommonAnyLinkage,   /**< Tentative definitions */
-  LLVMCommonODRLinkage    /**< Same, but only replaced by something
-                            equivalent. */
+  LLVMCommonLinkage       /**< Tentative definitions */
 } LLVMLinkage;
 
 typedef enum {
@@ -507,6 +504,8 @@ unsigned LLVMGetFunctionCallConv(LLVMValueRef Fn);
 void LLVMSetFunctionCallConv(LLVMValueRef Fn, unsigned CC);
 const char *LLVMGetGC(LLVMValueRef Fn);
 void LLVMSetGC(LLVMValueRef Fn, const char *Name);
+void LLVMAddFunctionAttr(LLVMValueRef Fn, LLVMAttribute PA);
+void LLVMRemoveFunctionAttr(LLVMValueRef Fn, LLVMAttribute PA);
 
 /* Operations on parameters */
 unsigned LLVMCountParams(LLVMValueRef Fn);