[llvm-commits] [llvm] r79295 - in /llvm/trunk: ./ bindings/ada/ bindings/ada/analysis/ bindings/ada/bitreader/ bindings/ada/bitwriter/ bindings/ada/executionengine/ bindings/ada/llvm/ bindings/ada/target/ bindings/ada/transforms/

Edward O'Callaghan eocallaghan at auroraux.org
Mon Aug 17 17:24:37 PDT 2009


Author: evocallaghan
Date: Mon Aug 17 19:24:36 2009
New Revision: 79295

URL: http://llvm.org/viewvc/llvm-project?rev=79295&view=rev
Log:
LLVM Ada language bindings. Credit to Rod Kay and the AuroraUX team.

Added:
    llvm/trunk/bindings/ada/
    llvm/trunk/bindings/ada/analysis/
    llvm/trunk/bindings/ada/analysis/llvm_analysis-binding.ads
    llvm/trunk/bindings/ada/analysis/llvm_analysis.ads
    llvm/trunk/bindings/ada/analysis/llvm_analysis_wrap.cxx
    llvm/trunk/bindings/ada/bitreader/
    llvm/trunk/bindings/ada/bitreader/llvm_bit_reader-binding.ads
    llvm/trunk/bindings/ada/bitreader/llvm_bit_reader.ads
    llvm/trunk/bindings/ada/bitreader/llvm_bitreader_wrap.cxx
    llvm/trunk/bindings/ada/bitwriter/
    llvm/trunk/bindings/ada/bitwriter/llvm_bit_writer-binding.ads
    llvm/trunk/bindings/ada/bitwriter/llvm_bit_writer.ads
    llvm/trunk/bindings/ada/bitwriter/llvm_bitwriter_wrap.cxx
    llvm/trunk/bindings/ada/executionengine/
    llvm/trunk/bindings/ada/executionengine/llvm_execution_engine-binding.ads
    llvm/trunk/bindings/ada/executionengine/llvm_execution_engine.ads
    llvm/trunk/bindings/ada/executionengine/llvm_executionengine_wrap.cxx
    llvm/trunk/bindings/ada/llvm/
    llvm/trunk/bindings/ada/llvm.gpr
    llvm/trunk/bindings/ada/llvm/llvm-binding.ads
    llvm/trunk/bindings/ada/llvm/llvm.ads
    llvm/trunk/bindings/ada/llvm/llvm_link_time_optimizer-binding.ads
    llvm/trunk/bindings/ada/llvm/llvm_link_time_optimizer.ads
    llvm/trunk/bindings/ada/llvm/llvm_linktimeoptimizer_wrap.cxx
    llvm/trunk/bindings/ada/llvm/llvm_wrap.cxx
    llvm/trunk/bindings/ada/target/
    llvm/trunk/bindings/ada/target/llvm_target-binding.ads
    llvm/trunk/bindings/ada/target/llvm_target.ads
    llvm/trunk/bindings/ada/target/llvm_target_wrap.cxx
    llvm/trunk/bindings/ada/transforms/
    llvm/trunk/bindings/ada/transforms/llvm_transforms-binding.ads
    llvm/trunk/bindings/ada/transforms/llvm_transforms.ads
    llvm/trunk/bindings/ada/transforms/llvm_transforms_wrap.cxx
Modified:
    llvm/trunk/CREDITS.TXT

Modified: llvm/trunk/CREDITS.TXT
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/CREDITS.TXT?rev=79295&r1=79294&r2=79295&view=diff

==============================================================================
--- llvm/trunk/CREDITS.TXT (original)
+++ llvm/trunk/CREDITS.TXT Mon Aug 17 19:24:36 2009
@@ -182,6 +182,10 @@
 E: kowshik at uiuc.edu
 D: Author of the original C backend
 
+N: Rod Kay
+E: rkay at auroraux.org
+D: Author of LLVM Ada bindings
+
 N: Christopher Lamb
 E: christopher.lamb at gmail.com
 D: aligned load/store support, parts of noalias and restrict support

Added: llvm/trunk/bindings/ada/analysis/llvm_analysis-binding.ads
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ada/analysis/llvm_analysis-binding.ads?rev=79295&view=auto

==============================================================================
--- llvm/trunk/bindings/ada/analysis/llvm_analysis-binding.ads (added)
+++ llvm/trunk/bindings/ada/analysis/llvm_analysis-binding.ads Mon Aug 17 19:24:36 2009
@@ -0,0 +1,32 @@
+-- This file is generated by SWIG. Do *not* modify by hand.
+--
+
+with llvm;
+with Interfaces.C.Strings;
+
+
+package LLVM_Analysis.Binding is
+
+   function LLVMVerifyModule
+     (M          : in llvm.LLVMModuleRef;
+      Action     : in LLVM_Analysis.LLVMVerifierFailureAction;
+      OutMessage : access Interfaces.C.Strings.chars_ptr)
+      return       Interfaces.C.int;
+
+   function LLVMVerifyFunction
+     (Fn     : in llvm.LLVMValueRef;
+      Action : in LLVM_Analysis.LLVMVerifierFailureAction)
+      return   Interfaces.C.int;
+
+   procedure LLVMViewFunctionCFG (Fn : in llvm.LLVMValueRef);
+
+   procedure LLVMViewFunctionCFGOnly (Fn : in llvm.LLVMValueRef);
+
+private
+
+   pragma Import (C, LLVMVerifyModule, "Ada_LLVMVerifyModule");
+   pragma Import (C, LLVMVerifyFunction, "Ada_LLVMVerifyFunction");
+   pragma Import (C, LLVMViewFunctionCFG, "Ada_LLVMViewFunctionCFG");
+   pragma Import (C, LLVMViewFunctionCFGOnly, "Ada_LLVMViewFunctionCFGOnly");
+
+end LLVM_Analysis.Binding;

Added: llvm/trunk/bindings/ada/analysis/llvm_analysis.ads
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ada/analysis/llvm_analysis.ads?rev=79295&view=auto

==============================================================================
--- llvm/trunk/bindings/ada/analysis/llvm_analysis.ads (added)
+++ llvm/trunk/bindings/ada/analysis/llvm_analysis.ads Mon Aug 17 19:24:36 2009
@@ -0,0 +1,30 @@
+-- This file is generated by SWIG. Do *not* modify by hand.
+--
+
+with Interfaces.C;
+
+
+package LLVM_Analysis is
+
+   -- LLVMVerifierFailureAction
+   --
+   type LLVMVerifierFailureAction is (
+      LLVMAbortProcessAction,
+      LLVMPrintMessageAction,
+      LLVMReturnStatusAction);
+
+   for LLVMVerifierFailureAction use
+     (LLVMAbortProcessAction => 0,
+      LLVMPrintMessageAction => 1,
+      LLVMReturnStatusAction => 2);
+
+   pragma Convention (C, LLVMVerifierFailureAction);
+
+   type LLVMVerifierFailureAction_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased LLVM_Analysis.LLVMVerifierFailureAction;
+
+   type LLVMVerifierFailureAction_view is access all
+     LLVM_Analysis.LLVMVerifierFailureAction;
+
+end LLVM_Analysis;

Added: llvm/trunk/bindings/ada/analysis/llvm_analysis_wrap.cxx
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ada/analysis/llvm_analysis_wrap.cxx?rev=79295&view=auto

==============================================================================
--- llvm/trunk/bindings/ada/analysis/llvm_analysis_wrap.cxx (added)
+++ llvm/trunk/bindings/ada/analysis/llvm_analysis_wrap.cxx Mon Aug 17 19:24:36 2009
@@ -0,0 +1,369 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 1.3.36
+ * 
+ * This file is not intended to be easily readable and contains a number of 
+ * coding conventions designed to improve portability and efficiency. Do not make
+ * changes to this file unless you know what you are doing--modify the SWIG 
+ * interface file instead. 
+ * ----------------------------------------------------------------------------- */
+
+
+#ifdef __cplusplus
+template<typename T> class SwigValueWrapper {
+    T *tt;
+public:
+    SwigValueWrapper() : tt(0) { }
+    SwigValueWrapper(const SwigValueWrapper<T>& rhs) : tt(new T(*rhs.tt)) { }
+    SwigValueWrapper(const T& t) : tt(new T(t)) { }
+    ~SwigValueWrapper() { delete tt; } 
+    SwigValueWrapper& operator=(const T& t) { delete tt; tt = new T(t); return *this; }
+    operator T&() const { return *tt; }
+    T *operator&() { return tt; }
+private:
+    SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
+};
+
+template <typename T> T SwigValueInit() {
+  return T();
+}
+#endif
+
+/* -----------------------------------------------------------------------------
+ *  This section contains generic SWIG labels for method/variable
+ *  declarations/attributes, and other compiler dependent labels.
+ * ----------------------------------------------------------------------------- */
+
+/* template workaround for compilers that cannot correctly implement the C++ standard */
+#ifndef SWIGTEMPLATEDISAMBIGUATOR
+# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
+#  define SWIGTEMPLATEDISAMBIGUATOR template
+# elif defined(__HP_aCC)
+/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
+/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
+#  define SWIGTEMPLATEDISAMBIGUATOR template
+# else
+#  define SWIGTEMPLATEDISAMBIGUATOR
+# endif
+#endif
+
+/* inline attribute */
+#ifndef SWIGINLINE
+# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
+#   define SWIGINLINE inline
+# else
+#   define SWIGINLINE
+# endif
+#endif
+
+/* attribute recognised by some compilers to avoid 'unused' warnings */
+#ifndef SWIGUNUSED
+# if defined(__GNUC__)
+#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
+#     define SWIGUNUSED __attribute__ ((__unused__)) 
+#   else
+#     define SWIGUNUSED
+#   endif
+# elif defined(__ICC)
+#   define SWIGUNUSED __attribute__ ((__unused__)) 
+# else
+#   define SWIGUNUSED 
+# endif
+#endif
+
+#ifndef SWIGUNUSEDPARM
+# ifdef __cplusplus
+#   define SWIGUNUSEDPARM(p)
+# else
+#   define SWIGUNUSEDPARM(p) p SWIGUNUSED 
+# endif
+#endif
+
+/* internal SWIG method */
+#ifndef SWIGINTERN
+# define SWIGINTERN static SWIGUNUSED
+#endif
+
+/* internal inline SWIG method */
+#ifndef SWIGINTERNINLINE
+# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
+#endif
+
+/* exporting methods */
+#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+#  ifndef GCC_HASCLASSVISIBILITY
+#    define GCC_HASCLASSVISIBILITY
+#  endif
+#endif
+
+#ifndef SWIGEXPORT
+# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+#   if defined(STATIC_LINKED)
+#     define SWIGEXPORT
+#   else
+#     define SWIGEXPORT __declspec(dllexport)
+#   endif
+# else
+#   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
+#     define SWIGEXPORT __attribute__ ((visibility("default")))
+#   else
+#     define SWIGEXPORT
+#   endif
+# endif
+#endif
+
+/* calling conventions for Windows */
+#ifndef SWIGSTDCALL
+# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+#   define SWIGSTDCALL __stdcall
+# else
+#   define SWIGSTDCALL
+# endif 
+#endif
+
+/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
+#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
+# define _CRT_SECURE_NO_DEPRECATE
+#endif
+
+/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
+#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
+# define _SCL_SECURE_NO_DEPRECATE
+#endif
+
+
+
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#if defined(_WIN32) || defined(__CYGWIN32__)
+#  define DllExport   __declspec( dllexport )
+#  define SWIGSTDCALL __stdcall
+#else
+#  define DllExport  
+#  define SWIGSTDCALL
+#endif 
+
+
+#ifdef __cplusplus
+#  include <new>
+#endif
+
+
+
+
+/* Support for throwing Ada exceptions from C/C++ */
+
+typedef enum 
+{
+  SWIG_AdaException,
+  SWIG_AdaOutOfMemoryException,
+  SWIG_AdaIndexOutOfRangeException,
+  SWIG_AdaDivideByZeroException,
+  SWIG_AdaArgumentOutOfRangeException,
+  SWIG_AdaNullReferenceException
+} SWIG_AdaExceptionCodes;
+
+
+typedef void (SWIGSTDCALL* SWIG_AdaExceptionCallback_t)(const char *);
+
+
+typedef struct 
+{
+  SWIG_AdaExceptionCodes code;
+  SWIG_AdaExceptionCallback_t callback;
+} 
+  SWIG_AdaExceptions_t;
+
+
+static 
+SWIG_AdaExceptions_t 
+SWIG_ada_exceptions[] = 
+{
+  { SWIG_AdaException, NULL },
+  { SWIG_AdaOutOfMemoryException, NULL },
+  { SWIG_AdaIndexOutOfRangeException, NULL },
+  { SWIG_AdaDivideByZeroException, NULL },
+  { SWIG_AdaArgumentOutOfRangeException, NULL },
+  { SWIG_AdaNullReferenceException, NULL } 
+};
+
+
+static 
+void 
+SWIG_AdaThrowException (SWIG_AdaExceptionCodes code, const char *msg) 
+{
+  SWIG_AdaExceptionCallback_t callback = SWIG_ada_exceptions[SWIG_AdaException].callback;
+  if (code >=0 && (size_t)code < sizeof(SWIG_ada_exceptions)/sizeof(SWIG_AdaExceptions_t)) {
+    callback = SWIG_ada_exceptions[code].callback;
+  }
+  callback(msg);
+}
+
+
+
+#ifdef __cplusplus
+extern "C" 
+#endif
+
+DllExport void SWIGSTDCALL SWIGRegisterExceptionCallbacks_LLVM_Analysis (SWIG_AdaExceptionCallback_t systemException,
+                                                                   SWIG_AdaExceptionCallback_t outOfMemory, 
+                                                                   SWIG_AdaExceptionCallback_t indexOutOfRange, 
+                                                                   SWIG_AdaExceptionCallback_t divideByZero, 
+                                                                   SWIG_AdaExceptionCallback_t argumentOutOfRange,
+                                                                   SWIG_AdaExceptionCallback_t nullReference) 
+{
+  SWIG_ada_exceptions [SWIG_AdaException].callback                   = systemException;
+  SWIG_ada_exceptions [SWIG_AdaOutOfMemoryException].callback        = outOfMemory;
+  SWIG_ada_exceptions [SWIG_AdaIndexOutOfRangeException].callback    = indexOutOfRange;
+  SWIG_ada_exceptions [SWIG_AdaDivideByZeroException].callback       = divideByZero;
+  SWIG_ada_exceptions [SWIG_AdaArgumentOutOfRangeException].callback = argumentOutOfRange;
+  SWIG_ada_exceptions [SWIG_AdaNullReferenceException].callback      = nullReference;
+}
+
+
+/* Callback for returning strings to Ada without leaking memory */
+
+typedef char * (SWIGSTDCALL* SWIG_AdaStringHelperCallback)(const char *);
+static SWIG_AdaStringHelperCallback SWIG_ada_string_callback = NULL;
+
+
+
+/* probably obsolete ...
+#ifdef __cplusplus
+extern "C" 
+#endif
+DllExport void SWIGSTDCALL SWIGRegisterStringCallback_LLVM_Analysis(SWIG_AdaStringHelperCallback callback) {
+  SWIG_ada_string_callback = callback;
+}
+*/
+
+
+
+/* Contract support */
+
+#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_AdaThrowException(SWIG_AdaArgumentOutOfRangeException, msg); return nullreturn; } else
+
+
+#define protected public
+#define private   public
+
+#include "llvm-c/Analysis.h"
+//#include "llvm-c/BitReader.h"
+//#include "llvm-c/BitWriter.h"
+//#include "llvm-c/Core.h"
+//#include "llvm-c/ExecutionEngine.h"
+//#include "llvm-c/LinkTimeOptimizer.h"
+//#include "llvm-c/lto.h"
+//#include "llvm-c/Target.h"
+
+
+
+//  struct LLVMCtxt;
+
+
+#undef protected
+#undef private
+#ifdef __cplusplus 
+extern "C" {
+#endif
+DllExport int SWIGSTDCALL Ada_LLVMVerifyModule (
+  void * jarg1
+  ,
+  
+  int jarg2
+  ,
+  
+  void * jarg3
+  )
+{
+  int jresult ;
+  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
+  LLVMVerifierFailureAction arg2 ;
+  char **arg3 = (char **) 0 ;
+  int result;
+  
+  arg1 = (LLVMModuleRef)jarg1; 
+  
+  arg2 = (LLVMVerifierFailureAction) jarg2; 
+  
+  arg3 = (char **)jarg3; 
+  
+  result = (int)LLVMVerifyModule(arg1,arg2,arg3);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMVerifyFunction (
+  void * jarg1
+  ,
+  
+  int jarg2
+  )
+{
+  int jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMVerifierFailureAction arg2 ;
+  int result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMVerifierFailureAction) jarg2; 
+  
+  result = (int)LLVMVerifyFunction(arg1,arg2);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMViewFunctionCFG (
+  void * jarg1
+  )
+{
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  LLVMViewFunctionCFG(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMViewFunctionCFGOnly (
+  void * jarg1
+  )
+{
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  LLVMViewFunctionCFGOnly(arg1);
+  
+  
+}
+
+
+
+#ifdef __cplusplus
+}
+#endif
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+

Added: llvm/trunk/bindings/ada/bitreader/llvm_bit_reader-binding.ads
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ada/bitreader/llvm_bit_reader-binding.ads?rev=79295&view=auto

==============================================================================
--- llvm/trunk/bindings/ada/bitreader/llvm_bit_reader-binding.ads (added)
+++ llvm/trunk/bindings/ada/bitreader/llvm_bit_reader-binding.ads Mon Aug 17 19:24:36 2009
@@ -0,0 +1,52 @@
+-- This file is generated by SWIG. Do *not* modify by hand.
+--
+
+with llvm;
+with Interfaces.C.Strings;
+
+
+package LLVM_bit_Reader.Binding is
+
+   function LLVMParseBitcode
+     (MemBuf     : in llvm.LLVMMemoryBufferRef;
+      OutModule  : access llvm.LLVMModuleRef;
+      OutMessage : access Interfaces.C.Strings.chars_ptr)
+      return       Interfaces.C.int;
+
+   function LLVMParseBitcodeInContext
+     (MemBuf     : in llvm.LLVMMemoryBufferRef;
+      ContextRef : in llvm.LLVMContextRef;
+      OutModule  : access llvm.LLVMModuleRef;
+      OutMessage : access Interfaces.C.Strings.chars_ptr)
+      return       Interfaces.C.int;
+
+   function LLVMGetBitcodeModuleProvider
+     (MemBuf     : in llvm.LLVMMemoryBufferRef;
+      OutMP      : access llvm.LLVMModuleProviderRef;
+      OutMessage : access Interfaces.C.Strings.chars_ptr)
+      return       Interfaces.C.int;
+
+   function LLVMGetBitcodeModuleProviderInContext
+     (MemBuf     : in llvm.LLVMMemoryBufferRef;
+      ContextRef : in llvm.LLVMContextRef;
+      OutMP      : access llvm.LLVMModuleProviderRef;
+      OutMessage : access Interfaces.C.Strings.chars_ptr)
+      return       Interfaces.C.int;
+
+private
+
+   pragma Import (C, LLVMParseBitcode, "Ada_LLVMParseBitcode");
+   pragma Import
+     (C,
+      LLVMParseBitcodeInContext,
+      "Ada_LLVMParseBitcodeInContext");
+   pragma Import
+     (C,
+      LLVMGetBitcodeModuleProvider,
+      "Ada_LLVMGetBitcodeModuleProvider");
+   pragma Import
+     (C,
+      LLVMGetBitcodeModuleProviderInContext,
+      "Ada_LLVMGetBitcodeModuleProviderInContext");
+
+end LLVM_bit_Reader.Binding;

Added: llvm/trunk/bindings/ada/bitreader/llvm_bit_reader.ads
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ada/bitreader/llvm_bit_reader.ads?rev=79295&view=auto

==============================================================================
--- llvm/trunk/bindings/ada/bitreader/llvm_bit_reader.ads (added)
+++ llvm/trunk/bindings/ada/bitreader/llvm_bit_reader.ads Mon Aug 17 19:24:36 2009
@@ -0,0 +1,6 @@
+-- This file is generated by SWIG. Do *not* modify by hand.
+--
+
+package LLVM_bit_Reader is
+
+end LLVM_bit_Reader;

Added: llvm/trunk/bindings/ada/bitreader/llvm_bitreader_wrap.cxx
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ada/bitreader/llvm_bitreader_wrap.cxx?rev=79295&view=auto

==============================================================================
--- llvm/trunk/bindings/ada/bitreader/llvm_bitreader_wrap.cxx (added)
+++ llvm/trunk/bindings/ada/bitreader/llvm_bitreader_wrap.cxx Mon Aug 17 19:24:36 2009
@@ -0,0 +1,423 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 1.3.36
+ * 
+ * This file is not intended to be easily readable and contains a number of 
+ * coding conventions designed to improve portability and efficiency. Do not make
+ * changes to this file unless you know what you are doing--modify the SWIG 
+ * interface file instead. 
+ * ----------------------------------------------------------------------------- */
+
+
+#ifdef __cplusplus
+template<typename T> class SwigValueWrapper {
+    T *tt;
+public:
+    SwigValueWrapper() : tt(0) { }
+    SwigValueWrapper(const SwigValueWrapper<T>& rhs) : tt(new T(*rhs.tt)) { }
+    SwigValueWrapper(const T& t) : tt(new T(t)) { }
+    ~SwigValueWrapper() { delete tt; } 
+    SwigValueWrapper& operator=(const T& t) { delete tt; tt = new T(t); return *this; }
+    operator T&() const { return *tt; }
+    T *operator&() { return tt; }
+private:
+    SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
+};
+
+template <typename T> T SwigValueInit() {
+  return T();
+}
+#endif
+
+/* -----------------------------------------------------------------------------
+ *  This section contains generic SWIG labels for method/variable
+ *  declarations/attributes, and other compiler dependent labels.
+ * ----------------------------------------------------------------------------- */
+
+/* template workaround for compilers that cannot correctly implement the C++ standard */
+#ifndef SWIGTEMPLATEDISAMBIGUATOR
+# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
+#  define SWIGTEMPLATEDISAMBIGUATOR template
+# elif defined(__HP_aCC)
+/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
+/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
+#  define SWIGTEMPLATEDISAMBIGUATOR template
+# else
+#  define SWIGTEMPLATEDISAMBIGUATOR
+# endif
+#endif
+
+/* inline attribute */
+#ifndef SWIGINLINE
+# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
+#   define SWIGINLINE inline
+# else
+#   define SWIGINLINE
+# endif
+#endif
+
+/* attribute recognised by some compilers to avoid 'unused' warnings */
+#ifndef SWIGUNUSED
+# if defined(__GNUC__)
+#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
+#     define SWIGUNUSED __attribute__ ((__unused__)) 
+#   else
+#     define SWIGUNUSED
+#   endif
+# elif defined(__ICC)
+#   define SWIGUNUSED __attribute__ ((__unused__)) 
+# else
+#   define SWIGUNUSED 
+# endif
+#endif
+
+#ifndef SWIGUNUSEDPARM
+# ifdef __cplusplus
+#   define SWIGUNUSEDPARM(p)
+# else
+#   define SWIGUNUSEDPARM(p) p SWIGUNUSED 
+# endif
+#endif
+
+/* internal SWIG method */
+#ifndef SWIGINTERN
+# define SWIGINTERN static SWIGUNUSED
+#endif
+
+/* internal inline SWIG method */
+#ifndef SWIGINTERNINLINE
+# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
+#endif
+
+/* exporting methods */
+#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+#  ifndef GCC_HASCLASSVISIBILITY
+#    define GCC_HASCLASSVISIBILITY
+#  endif
+#endif
+
+#ifndef SWIGEXPORT
+# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+#   if defined(STATIC_LINKED)
+#     define SWIGEXPORT
+#   else
+#     define SWIGEXPORT __declspec(dllexport)
+#   endif
+# else
+#   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
+#     define SWIGEXPORT __attribute__ ((visibility("default")))
+#   else
+#     define SWIGEXPORT
+#   endif
+# endif
+#endif
+
+/* calling conventions for Windows */
+#ifndef SWIGSTDCALL
+# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+#   define SWIGSTDCALL __stdcall
+# else
+#   define SWIGSTDCALL
+# endif 
+#endif
+
+/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
+#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
+# define _CRT_SECURE_NO_DEPRECATE
+#endif
+
+/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
+#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
+# define _SCL_SECURE_NO_DEPRECATE
+#endif
+
+
+
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#if defined(_WIN32) || defined(__CYGWIN32__)
+#  define DllExport   __declspec( dllexport )
+#  define SWIGSTDCALL __stdcall
+#else
+#  define DllExport  
+#  define SWIGSTDCALL
+#endif 
+
+
+#ifdef __cplusplus
+#  include <new>
+#endif
+
+
+
+
+/* Support for throwing Ada exceptions from C/C++ */
+
+typedef enum 
+{
+  SWIG_AdaException,
+  SWIG_AdaOutOfMemoryException,
+  SWIG_AdaIndexOutOfRangeException,
+  SWIG_AdaDivideByZeroException,
+  SWIG_AdaArgumentOutOfRangeException,
+  SWIG_AdaNullReferenceException
+} SWIG_AdaExceptionCodes;
+
+
+typedef void (SWIGSTDCALL* SWIG_AdaExceptionCallback_t)(const char *);
+
+
+typedef struct 
+{
+  SWIG_AdaExceptionCodes code;
+  SWIG_AdaExceptionCallback_t callback;
+} 
+  SWIG_AdaExceptions_t;
+
+
+static 
+SWIG_AdaExceptions_t 
+SWIG_ada_exceptions[] = 
+{
+  { SWIG_AdaException, NULL },
+  { SWIG_AdaOutOfMemoryException, NULL },
+  { SWIG_AdaIndexOutOfRangeException, NULL },
+  { SWIG_AdaDivideByZeroException, NULL },
+  { SWIG_AdaArgumentOutOfRangeException, NULL },
+  { SWIG_AdaNullReferenceException, NULL } 
+};
+
+
+static 
+void 
+SWIG_AdaThrowException (SWIG_AdaExceptionCodes code, const char *msg) 
+{
+  SWIG_AdaExceptionCallback_t callback = SWIG_ada_exceptions[SWIG_AdaException].callback;
+  if (code >=0 && (size_t)code < sizeof(SWIG_ada_exceptions)/sizeof(SWIG_AdaExceptions_t)) {
+    callback = SWIG_ada_exceptions[code].callback;
+  }
+  callback(msg);
+}
+
+
+
+#ifdef __cplusplus
+extern "C" 
+#endif
+
+DllExport void SWIGSTDCALL SWIGRegisterExceptionCallbacks_LLVM_bit_Reader (SWIG_AdaExceptionCallback_t systemException,
+                                                                   SWIG_AdaExceptionCallback_t outOfMemory, 
+                                                                   SWIG_AdaExceptionCallback_t indexOutOfRange, 
+                                                                   SWIG_AdaExceptionCallback_t divideByZero, 
+                                                                   SWIG_AdaExceptionCallback_t argumentOutOfRange,
+                                                                   SWIG_AdaExceptionCallback_t nullReference) 
+{
+  SWIG_ada_exceptions [SWIG_AdaException].callback                   = systemException;
+  SWIG_ada_exceptions [SWIG_AdaOutOfMemoryException].callback        = outOfMemory;
+  SWIG_ada_exceptions [SWIG_AdaIndexOutOfRangeException].callback    = indexOutOfRange;
+  SWIG_ada_exceptions [SWIG_AdaDivideByZeroException].callback       = divideByZero;
+  SWIG_ada_exceptions [SWIG_AdaArgumentOutOfRangeException].callback = argumentOutOfRange;
+  SWIG_ada_exceptions [SWIG_AdaNullReferenceException].callback      = nullReference;
+}
+
+
+/* Callback for returning strings to Ada without leaking memory */
+
+typedef char * (SWIGSTDCALL* SWIG_AdaStringHelperCallback)(const char *);
+static SWIG_AdaStringHelperCallback SWIG_ada_string_callback = NULL;
+
+
+
+/* probably obsolete ...
+#ifdef __cplusplus
+extern "C" 
+#endif
+DllExport void SWIGSTDCALL SWIGRegisterStringCallback_LLVM_bit_Reader(SWIG_AdaStringHelperCallback callback) {
+  SWIG_ada_string_callback = callback;
+}
+*/
+
+
+
+/* Contract support */
+
+#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_AdaThrowException(SWIG_AdaArgumentOutOfRangeException, msg); return nullreturn; } else
+
+
+#define protected public
+#define private   public
+
+//#include "llvm-c/Analysis.h"
+#include "llvm-c/BitReader.h"
+//#include "llvm-c/BitWriter.h"
+//#include "llvm-c/Core.h"
+//#include "llvm-c/ExecutionEngine.h"
+//#include "llvm-c/LinkTimeOptimizer.h"
+//#include "llvm-c/lto.h"
+//#include "llvm-c/Target.h"
+
+
+
+//  struct LLVMCtxt;
+
+
+#undef protected
+#undef private
+#ifdef __cplusplus 
+extern "C" {
+#endif
+DllExport int SWIGSTDCALL Ada_LLVMParseBitcode (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  )
+{
+  int jresult ;
+  LLVMMemoryBufferRef arg1 = (LLVMMemoryBufferRef) 0 ;
+  LLVMModuleRef *arg2 = (LLVMModuleRef *) 0 ;
+  char **arg3 = (char **) 0 ;
+  int result;
+  
+  arg1 = (LLVMMemoryBufferRef)jarg1; 
+  
+  arg2 = (LLVMModuleRef *)jarg2; 
+  
+  arg3 = (char **)jarg3; 
+  
+  result = (int)LLVMParseBitcode(arg1,arg2,arg3);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMParseBitcodeInContext (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  void * jarg4
+  )
+{
+  int jresult ;
+  LLVMMemoryBufferRef arg1 = (LLVMMemoryBufferRef) 0 ;
+  LLVMContextRef arg2 = (LLVMContextRef) 0 ;
+  LLVMModuleRef *arg3 = (LLVMModuleRef *) 0 ;
+  char **arg4 = (char **) 0 ;
+  int result;
+  
+  arg1 = (LLVMMemoryBufferRef)jarg1; 
+  
+  arg2 = (LLVMContextRef)jarg2; 
+  
+  arg3 = (LLVMModuleRef *)jarg3; 
+  
+  arg4 = (char **)jarg4; 
+  
+  result = (int)LLVMParseBitcodeInContext(arg1,arg2,arg3,arg4);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMGetBitcodeModuleProvider (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  )
+{
+  int jresult ;
+  LLVMMemoryBufferRef arg1 = (LLVMMemoryBufferRef) 0 ;
+  LLVMModuleProviderRef *arg2 = (LLVMModuleProviderRef *) 0 ;
+  char **arg3 = (char **) 0 ;
+  int result;
+  
+  arg1 = (LLVMMemoryBufferRef)jarg1; 
+  
+  arg2 = (LLVMModuleProviderRef *)jarg2; 
+  
+  arg3 = (char **)jarg3; 
+  
+  result = (int)LLVMGetBitcodeModuleProvider(arg1,arg2,arg3);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMGetBitcodeModuleProviderInContext (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  void * jarg4
+  )
+{
+  int jresult ;
+  LLVMMemoryBufferRef arg1 = (LLVMMemoryBufferRef) 0 ;
+  LLVMContextRef arg2 = (LLVMContextRef) 0 ;
+  LLVMModuleProviderRef *arg3 = (LLVMModuleProviderRef *) 0 ;
+  char **arg4 = (char **) 0 ;
+  int result;
+  
+  arg1 = (LLVMMemoryBufferRef)jarg1; 
+  
+  arg2 = (LLVMContextRef)jarg2; 
+  
+  arg3 = (LLVMModuleProviderRef *)jarg3; 
+  
+  arg4 = (char **)jarg4; 
+  
+  result = (int)LLVMGetBitcodeModuleProviderInContext(arg1,arg2,arg3,arg4);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+#ifdef __cplusplus
+}
+#endif
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+

Added: llvm/trunk/bindings/ada/bitwriter/llvm_bit_writer-binding.ads
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ada/bitwriter/llvm_bit_writer-binding.ads?rev=79295&view=auto

==============================================================================
--- llvm/trunk/bindings/ada/bitwriter/llvm_bit_writer-binding.ads (added)
+++ llvm/trunk/bindings/ada/bitwriter/llvm_bit_writer-binding.ads Mon Aug 17 19:24:36 2009
@@ -0,0 +1,28 @@
+-- This file is generated by SWIG. Do *not* modify by hand.
+--
+
+with llvm;
+with Interfaces.C.Strings;
+
+
+package LLVM_bit_Writer.Binding is
+
+   function LLVMWriteBitcodeToFileHandle
+     (M      : in llvm.LLVMModuleRef;
+      Handle : in Interfaces.C.int)
+      return   Interfaces.C.int;
+
+   function LLVMWriteBitcodeToFile
+     (M    : in llvm.LLVMModuleRef;
+      Path : in Interfaces.C.Strings.chars_ptr)
+      return Interfaces.C.int;
+
+private
+
+   pragma Import
+     (C,
+      LLVMWriteBitcodeToFileHandle,
+      "Ada_LLVMWriteBitcodeToFileHandle");
+   pragma Import (C, LLVMWriteBitcodeToFile, "Ada_LLVMWriteBitcodeToFile");
+
+end LLVM_bit_Writer.Binding;

Added: llvm/trunk/bindings/ada/bitwriter/llvm_bit_writer.ads
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ada/bitwriter/llvm_bit_writer.ads?rev=79295&view=auto

==============================================================================
--- llvm/trunk/bindings/ada/bitwriter/llvm_bit_writer.ads (added)
+++ llvm/trunk/bindings/ada/bitwriter/llvm_bit_writer.ads Mon Aug 17 19:24:36 2009
@@ -0,0 +1,6 @@
+-- This file is generated by SWIG. Do *not* modify by hand.
+--
+
+package LLVM_bit_Writer is
+
+end LLVM_bit_Writer;

Added: llvm/trunk/bindings/ada/bitwriter/llvm_bitwriter_wrap.cxx
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ada/bitwriter/llvm_bitwriter_wrap.cxx?rev=79295&view=auto

==============================================================================
--- llvm/trunk/bindings/ada/bitwriter/llvm_bitwriter_wrap.cxx (added)
+++ llvm/trunk/bindings/ada/bitwriter/llvm_bitwriter_wrap.cxx Mon Aug 17 19:24:36 2009
@@ -0,0 +1,335 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 1.3.36
+ * 
+ * This file is not intended to be easily readable and contains a number of 
+ * coding conventions designed to improve portability and efficiency. Do not make
+ * changes to this file unless you know what you are doing--modify the SWIG 
+ * interface file instead. 
+ * ----------------------------------------------------------------------------- */
+
+
+#ifdef __cplusplus
+template<typename T> class SwigValueWrapper {
+    T *tt;
+public:
+    SwigValueWrapper() : tt(0) { }
+    SwigValueWrapper(const SwigValueWrapper<T>& rhs) : tt(new T(*rhs.tt)) { }
+    SwigValueWrapper(const T& t) : tt(new T(t)) { }
+    ~SwigValueWrapper() { delete tt; } 
+    SwigValueWrapper& operator=(const T& t) { delete tt; tt = new T(t); return *this; }
+    operator T&() const { return *tt; }
+    T *operator&() { return tt; }
+private:
+    SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
+};
+
+template <typename T> T SwigValueInit() {
+  return T();
+}
+#endif
+
+/* -----------------------------------------------------------------------------
+ *  This section contains generic SWIG labels for method/variable
+ *  declarations/attributes, and other compiler dependent labels.
+ * ----------------------------------------------------------------------------- */
+
+/* template workaround for compilers that cannot correctly implement the C++ standard */
+#ifndef SWIGTEMPLATEDISAMBIGUATOR
+# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
+#  define SWIGTEMPLATEDISAMBIGUATOR template
+# elif defined(__HP_aCC)
+/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
+/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
+#  define SWIGTEMPLATEDISAMBIGUATOR template
+# else
+#  define SWIGTEMPLATEDISAMBIGUATOR
+# endif
+#endif
+
+/* inline attribute */
+#ifndef SWIGINLINE
+# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
+#   define SWIGINLINE inline
+# else
+#   define SWIGINLINE
+# endif
+#endif
+
+/* attribute recognised by some compilers to avoid 'unused' warnings */
+#ifndef SWIGUNUSED
+# if defined(__GNUC__)
+#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
+#     define SWIGUNUSED __attribute__ ((__unused__)) 
+#   else
+#     define SWIGUNUSED
+#   endif
+# elif defined(__ICC)
+#   define SWIGUNUSED __attribute__ ((__unused__)) 
+# else
+#   define SWIGUNUSED 
+# endif
+#endif
+
+#ifndef SWIGUNUSEDPARM
+# ifdef __cplusplus
+#   define SWIGUNUSEDPARM(p)
+# else
+#   define SWIGUNUSEDPARM(p) p SWIGUNUSED 
+# endif
+#endif
+
+/* internal SWIG method */
+#ifndef SWIGINTERN
+# define SWIGINTERN static SWIGUNUSED
+#endif
+
+/* internal inline SWIG method */
+#ifndef SWIGINTERNINLINE
+# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
+#endif
+
+/* exporting methods */
+#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+#  ifndef GCC_HASCLASSVISIBILITY
+#    define GCC_HASCLASSVISIBILITY
+#  endif
+#endif
+
+#ifndef SWIGEXPORT
+# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+#   if defined(STATIC_LINKED)
+#     define SWIGEXPORT
+#   else
+#     define SWIGEXPORT __declspec(dllexport)
+#   endif
+# else
+#   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
+#     define SWIGEXPORT __attribute__ ((visibility("default")))
+#   else
+#     define SWIGEXPORT
+#   endif
+# endif
+#endif
+
+/* calling conventions for Windows */
+#ifndef SWIGSTDCALL
+# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+#   define SWIGSTDCALL __stdcall
+# else
+#   define SWIGSTDCALL
+# endif 
+#endif
+
+/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
+#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
+# define _CRT_SECURE_NO_DEPRECATE
+#endif
+
+/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
+#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
+# define _SCL_SECURE_NO_DEPRECATE
+#endif
+
+
+
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#if defined(_WIN32) || defined(__CYGWIN32__)
+#  define DllExport   __declspec( dllexport )
+#  define SWIGSTDCALL __stdcall
+#else
+#  define DllExport  
+#  define SWIGSTDCALL
+#endif 
+
+
+#ifdef __cplusplus
+#  include <new>
+#endif
+
+
+
+
+/* Support for throwing Ada exceptions from C/C++ */
+
+typedef enum 
+{
+  SWIG_AdaException,
+  SWIG_AdaOutOfMemoryException,
+  SWIG_AdaIndexOutOfRangeException,
+  SWIG_AdaDivideByZeroException,
+  SWIG_AdaArgumentOutOfRangeException,
+  SWIG_AdaNullReferenceException
+} SWIG_AdaExceptionCodes;
+
+
+typedef void (SWIGSTDCALL* SWIG_AdaExceptionCallback_t)(const char *);
+
+
+typedef struct 
+{
+  SWIG_AdaExceptionCodes code;
+  SWIG_AdaExceptionCallback_t callback;
+} 
+  SWIG_AdaExceptions_t;
+
+
+static 
+SWIG_AdaExceptions_t 
+SWIG_ada_exceptions[] = 
+{
+  { SWIG_AdaException, NULL },
+  { SWIG_AdaOutOfMemoryException, NULL },
+  { SWIG_AdaIndexOutOfRangeException, NULL },
+  { SWIG_AdaDivideByZeroException, NULL },
+  { SWIG_AdaArgumentOutOfRangeException, NULL },
+  { SWIG_AdaNullReferenceException, NULL } 
+};
+
+
+static 
+void 
+SWIG_AdaThrowException (SWIG_AdaExceptionCodes code, const char *msg) 
+{
+  SWIG_AdaExceptionCallback_t callback = SWIG_ada_exceptions[SWIG_AdaException].callback;
+  if (code >=0 && (size_t)code < sizeof(SWIG_ada_exceptions)/sizeof(SWIG_AdaExceptions_t)) {
+    callback = SWIG_ada_exceptions[code].callback;
+  }
+  callback(msg);
+}
+
+
+
+#ifdef __cplusplus
+extern "C" 
+#endif
+
+DllExport void SWIGSTDCALL SWIGRegisterExceptionCallbacks_LLVM_bit_Writer (SWIG_AdaExceptionCallback_t systemException,
+                                                                   SWIG_AdaExceptionCallback_t outOfMemory, 
+                                                                   SWIG_AdaExceptionCallback_t indexOutOfRange, 
+                                                                   SWIG_AdaExceptionCallback_t divideByZero, 
+                                                                   SWIG_AdaExceptionCallback_t argumentOutOfRange,
+                                                                   SWIG_AdaExceptionCallback_t nullReference) 
+{
+  SWIG_ada_exceptions [SWIG_AdaException].callback                   = systemException;
+  SWIG_ada_exceptions [SWIG_AdaOutOfMemoryException].callback        = outOfMemory;
+  SWIG_ada_exceptions [SWIG_AdaIndexOutOfRangeException].callback    = indexOutOfRange;
+  SWIG_ada_exceptions [SWIG_AdaDivideByZeroException].callback       = divideByZero;
+  SWIG_ada_exceptions [SWIG_AdaArgumentOutOfRangeException].callback = argumentOutOfRange;
+  SWIG_ada_exceptions [SWIG_AdaNullReferenceException].callback      = nullReference;
+}
+
+
+/* Callback for returning strings to Ada without leaking memory */
+
+typedef char * (SWIGSTDCALL* SWIG_AdaStringHelperCallback)(const char *);
+static SWIG_AdaStringHelperCallback SWIG_ada_string_callback = NULL;
+
+
+
+/* probably obsolete ...
+#ifdef __cplusplus
+extern "C" 
+#endif
+DllExport void SWIGSTDCALL SWIGRegisterStringCallback_LLVM_bit_Writer(SWIG_AdaStringHelperCallback callback) {
+  SWIG_ada_string_callback = callback;
+}
+*/
+
+
+
+/* Contract support */
+
+#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_AdaThrowException(SWIG_AdaArgumentOutOfRangeException, msg); return nullreturn; } else
+
+
+#define protected public
+#define private   public
+
+#include "llvm-c/Analysis.h"
+#include "llvm-c/BitReader.h"
+#include "llvm-c/BitWriter.h"
+#include "llvm-c/Core.h"
+#include "llvm-c/ExecutionEngine.h"
+#include "llvm-c/LinkTimeOptimizer.h"
+#include "llvm-c/lto.h"
+#include "llvm-c/Target.h"
+
+
+
+//  struct LLVMCtxt;
+
+
+#undef protected
+#undef private
+#ifdef __cplusplus 
+extern "C" {
+#endif
+DllExport int SWIGSTDCALL Ada_LLVMWriteBitcodeToFileHandle (
+  void * jarg1
+  ,
+  
+  int jarg2
+  )
+{
+  int jresult ;
+  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
+  int arg2 ;
+  int result;
+  
+  arg1 = (LLVMModuleRef)jarg1; 
+  
+  
+  arg2 = (int) jarg2; 
+  
+  
+  result = (int)LLVMWriteBitcodeToFileHandle(arg1,arg2);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMWriteBitcodeToFile (
+  void * jarg1
+  ,
+  
+  char * jarg2
+  )
+{
+  int jresult ;
+  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
+  char *arg2 = (char *) 0 ;
+  int result;
+  
+  arg1 = (LLVMModuleRef)jarg1; 
+  
+  arg2 = jarg2; 
+  
+  result = (int)LLVMWriteBitcodeToFile(arg1,(char const *)arg2);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+#ifdef __cplusplus
+}
+#endif
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+

Added: llvm/trunk/bindings/ada/executionengine/llvm_execution_engine-binding.ads
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ada/executionengine/llvm_execution_engine-binding.ads?rev=79295&view=auto

==============================================================================
--- llvm/trunk/bindings/ada/executionengine/llvm_execution_engine-binding.ads (added)
+++ llvm/trunk/bindings/ada/executionengine/llvm_execution_engine-binding.ads Mon Aug 17 19:24:36 2009
@@ -0,0 +1,192 @@
+-- This file is generated by SWIG. Do *not* modify by hand.
+--
+
+with llvm;
+with Interfaces.C.Strings;
+
+
+package LLVM_execution_Engine.Binding is
+
+   procedure LLVMLinkInJIT;
+
+   procedure LLVMLinkInInterpreter;
+
+   function LLVMCreateGenericValueOfInt
+     (Ty       : in llvm.LLVMTypeRef;
+      N        : in Interfaces.C.Extensions.unsigned_long_long;
+      IsSigned : in Interfaces.C.int)
+      return     LLVM_execution_Engine.LLVMGenericValueRef;
+
+   function LLVMCreateGenericValueOfPointer
+     (P    : access Interfaces.C.Extensions.void)
+      return LLVM_execution_Engine.LLVMGenericValueRef;
+
+   function LLVMCreateGenericValueOfFloat
+     (Ty   : in llvm.LLVMTypeRef;
+      N    : in Interfaces.C.double)
+      return LLVM_execution_Engine.LLVMGenericValueRef;
+
+   function LLVMGenericValueIntWidth
+     (GenValRef : in LLVM_execution_Engine.LLVMGenericValueRef)
+      return      Interfaces.C.unsigned;
+
+   function LLVMGenericValueToInt
+     (GenVal   : in LLVM_execution_Engine.LLVMGenericValueRef;
+      IsSigned : in Interfaces.C.int)
+      return     Interfaces.C.Extensions.unsigned_long_long;
+
+   function LLVMGenericValueToPointer
+     (GenVal : in LLVM_execution_Engine.LLVMGenericValueRef)
+      return   access Interfaces.C.Extensions.void;
+
+   function LLVMGenericValueToFloat
+     (TyRef  : in llvm.LLVMTypeRef;
+      GenVal : in LLVM_execution_Engine.LLVMGenericValueRef)
+      return   Interfaces.C.double;
+
+   procedure LLVMDisposeGenericValue
+     (GenVal : in LLVM_execution_Engine.LLVMGenericValueRef);
+
+   function LLVMCreateExecutionEngine
+     (OutEE    : access LLVM_execution_Engine.LLVMExecutionEngineRef;
+      MP       : in llvm.LLVMModuleProviderRef;
+      OutError : access Interfaces.C.Strings.chars_ptr)
+      return     Interfaces.C.int;
+
+   function LLVMCreateInterpreter
+     (OutInterp : access LLVM_execution_Engine.LLVMExecutionEngineRef;
+      MP        : in llvm.LLVMModuleProviderRef;
+      OutError  : access Interfaces.C.Strings.chars_ptr)
+      return      Interfaces.C.int;
+
+   function LLVMCreateJITCompiler
+     (OutJIT   : access LLVM_execution_Engine.LLVMExecutionEngineRef;
+      MP       : in llvm.LLVMModuleProviderRef;
+      OptLevel : in Interfaces.C.unsigned;
+      OutError : access Interfaces.C.Strings.chars_ptr)
+      return     Interfaces.C.int;
+
+   procedure LLVMDisposeExecutionEngine
+     (EE : in LLVM_execution_Engine.LLVMExecutionEngineRef);
+
+   procedure LLVMRunStaticConstructors
+     (EE : in LLVM_execution_Engine.LLVMExecutionEngineRef);
+
+   procedure LLVMRunStaticDestructors
+     (EE : in LLVM_execution_Engine.LLVMExecutionEngineRef);
+
+   function LLVMRunFunctionAsMain
+     (EE   : in LLVM_execution_Engine.LLVMExecutionEngineRef;
+      F    : in llvm.LLVMValueRef;
+      ArgC : in Interfaces.C.unsigned;
+      ArgV : access Interfaces.C.Strings.chars_ptr;
+      EnvP : access Interfaces.C.Strings.chars_ptr)
+      return Interfaces.C.int;
+
+   function LLVMRunFunction
+     (EE      : in LLVM_execution_Engine.LLVMExecutionEngineRef;
+      F       : in llvm.LLVMValueRef;
+      NumArgs : in Interfaces.C.unsigned;
+      Args    : access LLVM_execution_Engine.LLVMGenericValueRef)
+      return    LLVM_execution_Engine.LLVMGenericValueRef;
+
+   procedure LLVMFreeMachineCodeForFunction
+     (EE : in LLVM_execution_Engine.LLVMExecutionEngineRef;
+      F  : in llvm.LLVMValueRef);
+
+   procedure LLVMAddModuleProvider
+     (EE : in LLVM_execution_Engine.LLVMExecutionEngineRef;
+      MP : in llvm.LLVMModuleProviderRef);
+
+   function LLVMRemoveModuleProvider
+     (EE       : in LLVM_execution_Engine.LLVMExecutionEngineRef;
+      MP       : in llvm.LLVMModuleProviderRef;
+      OutMod   : access llvm.LLVMModuleRef;
+      OutError : access Interfaces.C.Strings.chars_ptr)
+      return     Interfaces.C.int;
+
+   function LLVMFindFunction
+     (EE    : in LLVM_execution_Engine.LLVMExecutionEngineRef;
+      Name  : in Interfaces.C.Strings.chars_ptr;
+      OutFn : access llvm.LLVMValueRef)
+      return  Interfaces.C.int;
+
+   function LLVMGetExecutionEngineTargetData
+     (EE   : in LLVM_execution_Engine.LLVMExecutionEngineRef)
+      return LLVM_execution_Engine.LLVMTargetDataRef;
+
+   procedure LLVMAddGlobalMapping
+     (EE     : in LLVM_execution_Engine.LLVMExecutionEngineRef;
+      Global : in llvm.LLVMValueRef;
+      Addr   : access Interfaces.C.Extensions.void);
+
+   function LLVMGetPointerToGlobal
+     (EE     : in LLVM_execution_Engine.LLVMExecutionEngineRef;
+      Global : in llvm.LLVMValueRef)
+      return   access Interfaces.C.Extensions.void;
+
+private
+
+   pragma Import (C, LLVMLinkInJIT, "Ada_LLVMLinkInJIT");
+   pragma Import (C, LLVMLinkInInterpreter, "Ada_LLVMLinkInInterpreter");
+   pragma Import
+     (C,
+      LLVMCreateGenericValueOfInt,
+      "Ada_LLVMCreateGenericValueOfInt");
+   pragma Import
+     (C,
+      LLVMCreateGenericValueOfPointer,
+      "Ada_LLVMCreateGenericValueOfPointer");
+   pragma Import
+     (C,
+      LLVMCreateGenericValueOfFloat,
+      "Ada_LLVMCreateGenericValueOfFloat");
+   pragma Import
+     (C,
+      LLVMGenericValueIntWidth,
+      "Ada_LLVMGenericValueIntWidth");
+   pragma Import (C, LLVMGenericValueToInt, "Ada_LLVMGenericValueToInt");
+   pragma Import
+     (C,
+      LLVMGenericValueToPointer,
+      "Ada_LLVMGenericValueToPointer");
+   pragma Import (C, LLVMGenericValueToFloat, "Ada_LLVMGenericValueToFloat");
+   pragma Import (C, LLVMDisposeGenericValue, "Ada_LLVMDisposeGenericValue");
+   pragma Import
+     (C,
+      LLVMCreateExecutionEngine,
+      "Ada_LLVMCreateExecutionEngine");
+   pragma Import (C, LLVMCreateInterpreter, "Ada_LLVMCreateInterpreter");
+   pragma Import (C, LLVMCreateJITCompiler, "Ada_LLVMCreateJITCompiler");
+   pragma Import
+     (C,
+      LLVMDisposeExecutionEngine,
+      "Ada_LLVMDisposeExecutionEngine");
+   pragma Import
+     (C,
+      LLVMRunStaticConstructors,
+      "Ada_LLVMRunStaticConstructors");
+   pragma Import
+     (C,
+      LLVMRunStaticDestructors,
+      "Ada_LLVMRunStaticDestructors");
+   pragma Import (C, LLVMRunFunctionAsMain, "Ada_LLVMRunFunctionAsMain");
+   pragma Import (C, LLVMRunFunction, "Ada_LLVMRunFunction");
+   pragma Import
+     (C,
+      LLVMFreeMachineCodeForFunction,
+      "Ada_LLVMFreeMachineCodeForFunction");
+   pragma Import (C, LLVMAddModuleProvider, "Ada_LLVMAddModuleProvider");
+   pragma Import
+     (C,
+      LLVMRemoveModuleProvider,
+      "Ada_LLVMRemoveModuleProvider");
+   pragma Import (C, LLVMFindFunction, "Ada_LLVMFindFunction");
+   pragma Import
+     (C,
+      LLVMGetExecutionEngineTargetData,
+      "Ada_LLVMGetExecutionEngineTargetData");
+   pragma Import (C, LLVMAddGlobalMapping, "Ada_LLVMAddGlobalMapping");
+   pragma Import (C, LLVMGetPointerToGlobal, "Ada_LLVMGetPointerToGlobal");
+
+end LLVM_execution_Engine.Binding;

Added: llvm/trunk/bindings/ada/executionengine/llvm_execution_engine.ads
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ada/executionengine/llvm_execution_engine.ads?rev=79295&view=auto

==============================================================================
--- llvm/trunk/bindings/ada/executionengine/llvm_execution_engine.ads (added)
+++ llvm/trunk/bindings/ada/executionengine/llvm_execution_engine.ads Mon Aug 17 19:24:36 2009
@@ -0,0 +1,90 @@
+-- This file is generated by SWIG. Do *not* modify by hand.
+--
+
+with Interfaces.C.Extensions;
+
+
+package LLVM_execution_Engine is
+
+   -- LLVMOpaqueGenericValue
+   --
+   type LLVMOpaqueGenericValue is new
+     Interfaces.C.Extensions.opaque_structure_def;
+
+   type LLVMOpaqueGenericValue_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased LLVM_execution_Engine.LLVMOpaqueGenericValue;
+
+   type LLVMOpaqueGenericValue_view is access all
+     LLVM_execution_Engine.LLVMOpaqueGenericValue;
+
+   -- LLVMGenericValueRef
+   --
+   type LLVMGenericValueRef is access all
+     LLVM_execution_Engine.LLVMOpaqueGenericValue;
+
+   type LLVMGenericValueRef_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased LLVM_execution_Engine.LLVMGenericValueRef;
+
+   type LLVMGenericValueRef_view is access all
+     LLVM_execution_Engine.LLVMGenericValueRef;
+
+   -- LLVMOpaqueExecutionEngine
+   --
+   type LLVMOpaqueExecutionEngine is new
+     Interfaces.C.Extensions.opaque_structure_def;
+
+   type LLVMOpaqueExecutionEngine_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased LLVM_execution_Engine.LLVMOpaqueExecutionEngine;
+
+   type LLVMOpaqueExecutionEngine_view is access all
+     LLVM_execution_Engine.LLVMOpaqueExecutionEngine;
+
+   -- LLVMExecutionEngineRef
+   --
+   type LLVMExecutionEngineRef is access all
+     LLVM_execution_Engine.LLVMOpaqueExecutionEngine;
+
+   type LLVMExecutionEngineRef_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased LLVM_execution_Engine.LLVMExecutionEngineRef;
+
+   type LLVMExecutionEngineRef_view is access all
+     LLVM_execution_Engine.LLVMExecutionEngineRef;
+
+   -- LLVMTargetDataRef
+   --
+   type LLVMTargetDataRef is new Interfaces.C.Extensions.opaque_structure_def;
+
+   type LLVMTargetDataRef_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased LLVM_execution_Engine.LLVMTargetDataRef;
+
+   type LLVMTargetDataRef_view is access all
+     LLVM_execution_Engine.LLVMTargetDataRef;
+
+   -- GenericValue
+   --
+   type GenericValue is new Interfaces.C.Extensions.opaque_structure_def;
+
+   type GenericValue_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased LLVM_execution_Engine.GenericValue;
+
+   type GenericValue_view is access all LLVM_execution_Engine.GenericValue;
+
+   -- ExecutionEngine
+   --
+   type ExecutionEngine is new Interfaces.C.Extensions.incomplete_class_def;
+
+   type ExecutionEngine_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased LLVM_execution_Engine.ExecutionEngine;
+
+   type ExecutionEngine_view is access all
+     LLVM_execution_Engine.ExecutionEngine;
+
+
+end LLVM_execution_Engine;

Added: llvm/trunk/bindings/ada/executionengine/llvm_executionengine_wrap.cxx
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ada/executionengine/llvm_executionengine_wrap.cxx?rev=79295&view=auto

==============================================================================
--- llvm/trunk/bindings/ada/executionengine/llvm_executionengine_wrap.cxx (added)
+++ llvm/trunk/bindings/ada/executionengine/llvm_executionengine_wrap.cxx Mon Aug 17 19:24:36 2009
@@ -0,0 +1,924 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 1.3.36
+ * 
+ * This file is not intended to be easily readable and contains a number of 
+ * coding conventions designed to improve portability and efficiency. Do not make
+ * changes to this file unless you know what you are doing--modify the SWIG 
+ * interface file instead. 
+ * ----------------------------------------------------------------------------- */
+
+
+#ifdef __cplusplus
+template<typename T> class SwigValueWrapper {
+    T *tt;
+public:
+    SwigValueWrapper() : tt(0) { }
+    SwigValueWrapper(const SwigValueWrapper<T>& rhs) : tt(new T(*rhs.tt)) { }
+    SwigValueWrapper(const T& t) : tt(new T(t)) { }
+    ~SwigValueWrapper() { delete tt; } 
+    SwigValueWrapper& operator=(const T& t) { delete tt; tt = new T(t); return *this; }
+    operator T&() const { return *tt; }
+    T *operator&() { return tt; }
+private:
+    SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
+};
+
+template <typename T> T SwigValueInit() {
+  return T();
+}
+#endif
+
+/* -----------------------------------------------------------------------------
+ *  This section contains generic SWIG labels for method/variable
+ *  declarations/attributes, and other compiler dependent labels.
+ * ----------------------------------------------------------------------------- */
+
+/* template workaround for compilers that cannot correctly implement the C++ standard */
+#ifndef SWIGTEMPLATEDISAMBIGUATOR
+# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
+#  define SWIGTEMPLATEDISAMBIGUATOR template
+# elif defined(__HP_aCC)
+/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
+/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
+#  define SWIGTEMPLATEDISAMBIGUATOR template
+# else
+#  define SWIGTEMPLATEDISAMBIGUATOR
+# endif
+#endif
+
+/* inline attribute */
+#ifndef SWIGINLINE
+# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
+#   define SWIGINLINE inline
+# else
+#   define SWIGINLINE
+# endif
+#endif
+
+/* attribute recognised by some compilers to avoid 'unused' warnings */
+#ifndef SWIGUNUSED
+# if defined(__GNUC__)
+#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
+#     define SWIGUNUSED __attribute__ ((__unused__)) 
+#   else
+#     define SWIGUNUSED
+#   endif
+# elif defined(__ICC)
+#   define SWIGUNUSED __attribute__ ((__unused__)) 
+# else
+#   define SWIGUNUSED 
+# endif
+#endif
+
+#ifndef SWIGUNUSEDPARM
+# ifdef __cplusplus
+#   define SWIGUNUSEDPARM(p)
+# else
+#   define SWIGUNUSEDPARM(p) p SWIGUNUSED 
+# endif
+#endif
+
+/* internal SWIG method */
+#ifndef SWIGINTERN
+# define SWIGINTERN static SWIGUNUSED
+#endif
+
+/* internal inline SWIG method */
+#ifndef SWIGINTERNINLINE
+# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
+#endif
+
+/* exporting methods */
+#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+#  ifndef GCC_HASCLASSVISIBILITY
+#    define GCC_HASCLASSVISIBILITY
+#  endif
+#endif
+
+#ifndef SWIGEXPORT
+# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+#   if defined(STATIC_LINKED)
+#     define SWIGEXPORT
+#   else
+#     define SWIGEXPORT __declspec(dllexport)
+#   endif
+# else
+#   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
+#     define SWIGEXPORT __attribute__ ((visibility("default")))
+#   else
+#     define SWIGEXPORT
+#   endif
+# endif
+#endif
+
+/* calling conventions for Windows */
+#ifndef SWIGSTDCALL
+# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+#   define SWIGSTDCALL __stdcall
+# else
+#   define SWIGSTDCALL
+# endif 
+#endif
+
+/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
+#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
+# define _CRT_SECURE_NO_DEPRECATE
+#endif
+
+/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
+#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
+# define _SCL_SECURE_NO_DEPRECATE
+#endif
+
+
+
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#if defined(_WIN32) || defined(__CYGWIN32__)
+#  define DllExport   __declspec( dllexport )
+#  define SWIGSTDCALL __stdcall
+#else
+#  define DllExport  
+#  define SWIGSTDCALL
+#endif 
+
+
+#ifdef __cplusplus
+#  include <new>
+#endif
+
+
+
+
+/* Support for throwing Ada exceptions from C/C++ */
+
+typedef enum 
+{
+  SWIG_AdaException,
+  SWIG_AdaOutOfMemoryException,
+  SWIG_AdaIndexOutOfRangeException,
+  SWIG_AdaDivideByZeroException,
+  SWIG_AdaArgumentOutOfRangeException,
+  SWIG_AdaNullReferenceException
+} SWIG_AdaExceptionCodes;
+
+
+typedef void (SWIGSTDCALL* SWIG_AdaExceptionCallback_t)(const char *);
+
+
+typedef struct 
+{
+  SWIG_AdaExceptionCodes code;
+  SWIG_AdaExceptionCallback_t callback;
+} 
+  SWIG_AdaExceptions_t;
+
+
+static 
+SWIG_AdaExceptions_t 
+SWIG_ada_exceptions[] = 
+{
+  { SWIG_AdaException, NULL },
+  { SWIG_AdaOutOfMemoryException, NULL },
+  { SWIG_AdaIndexOutOfRangeException, NULL },
+  { SWIG_AdaDivideByZeroException, NULL },
+  { SWIG_AdaArgumentOutOfRangeException, NULL },
+  { SWIG_AdaNullReferenceException, NULL } 
+};
+
+
+static 
+void 
+SWIG_AdaThrowException (SWIG_AdaExceptionCodes code, const char *msg) 
+{
+  SWIG_AdaExceptionCallback_t callback = SWIG_ada_exceptions[SWIG_AdaException].callback;
+  if (code >=0 && (size_t)code < sizeof(SWIG_ada_exceptions)/sizeof(SWIG_AdaExceptions_t)) {
+    callback = SWIG_ada_exceptions[code].callback;
+  }
+  callback(msg);
+}
+
+
+
+#ifdef __cplusplus
+extern "C" 
+#endif
+
+DllExport void SWIGSTDCALL SWIGRegisterExceptionCallbacks_LLVM_execution_Engine (SWIG_AdaExceptionCallback_t systemException,
+                                                                   SWIG_AdaExceptionCallback_t outOfMemory, 
+                                                                   SWIG_AdaExceptionCallback_t indexOutOfRange, 
+                                                                   SWIG_AdaExceptionCallback_t divideByZero, 
+                                                                   SWIG_AdaExceptionCallback_t argumentOutOfRange,
+                                                                   SWIG_AdaExceptionCallback_t nullReference) 
+{
+  SWIG_ada_exceptions [SWIG_AdaException].callback                   = systemException;
+  SWIG_ada_exceptions [SWIG_AdaOutOfMemoryException].callback        = outOfMemory;
+  SWIG_ada_exceptions [SWIG_AdaIndexOutOfRangeException].callback    = indexOutOfRange;
+  SWIG_ada_exceptions [SWIG_AdaDivideByZeroException].callback       = divideByZero;
+  SWIG_ada_exceptions [SWIG_AdaArgumentOutOfRangeException].callback = argumentOutOfRange;
+  SWIG_ada_exceptions [SWIG_AdaNullReferenceException].callback      = nullReference;
+}
+
+
+/* Callback for returning strings to Ada without leaking memory */
+
+typedef char * (SWIGSTDCALL* SWIG_AdaStringHelperCallback)(const char *);
+static SWIG_AdaStringHelperCallback SWIG_ada_string_callback = NULL;
+
+
+
+/* probably obsolete ...
+#ifdef __cplusplus
+extern "C" 
+#endif
+DllExport void SWIGSTDCALL SWIGRegisterStringCallback_LLVM_execution_Engine(SWIG_AdaStringHelperCallback callback) {
+  SWIG_ada_string_callback = callback;
+}
+*/
+
+
+
+/* Contract support */
+
+#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_AdaThrowException(SWIG_AdaArgumentOutOfRangeException, msg); return nullreturn; } else
+
+
+#define protected public
+#define private   public
+
+#include "llvm-c/ExecutionEngine.h"
+
+
+
+//  struct LLVMCtxt;
+
+
+#undef protected
+#undef private
+#ifdef __cplusplus 
+extern "C" {
+#endif
+DllExport void SWIGSTDCALL Ada_LLVMLinkInJIT (
+  )
+{
+  LLVMLinkInJIT();
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMLinkInInterpreter (
+  )
+{
+  LLVMLinkInInterpreter();
+  
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMCreateGenericValueOfInt (
+  void * jarg1
+  ,
+  
+  unsigned long long jarg2
+  ,
+  
+  int jarg3
+  )
+{
+  void * jresult ;
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  unsigned long long arg2 ;
+  int arg3 ;
+  LLVMGenericValueRef result;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  
+  arg2 = (unsigned long long) jarg2; 
+  
+  
+  
+  arg3 = (int) jarg3; 
+  
+  
+  result = (LLVMGenericValueRef)LLVMCreateGenericValueOfInt(arg1,arg2,arg3);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMCreateGenericValueOfPointer (
+  void* jarg1
+  )
+{
+  void * jresult ;
+  void *arg1 = (void *) 0 ;
+  LLVMGenericValueRef result;
+  
+  arg1 = (void *)jarg1; 
+  
+  result = (LLVMGenericValueRef)LLVMCreateGenericValueOfPointer(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMCreateGenericValueOfFloat (
+  void * jarg1
+  ,
+  
+  double jarg2
+  )
+{
+  void * jresult ;
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  double arg2 ;
+  LLVMGenericValueRef result;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  
+  arg2 = (double) jarg2; 
+  
+  
+  result = (LLVMGenericValueRef)LLVMCreateGenericValueOfFloat(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport unsigned int SWIGSTDCALL Ada_LLVMGenericValueIntWidth (
+  void * jarg1
+  )
+{
+  unsigned int jresult ;
+  LLVMGenericValueRef arg1 = (LLVMGenericValueRef) 0 ;
+  unsigned int result;
+  
+  arg1 = (LLVMGenericValueRef)jarg1; 
+  
+  result = (unsigned int)LLVMGenericValueIntWidth(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport unsigned long long SWIGSTDCALL Ada_LLVMGenericValueToInt (
+  void * jarg1
+  ,
+  
+  int jarg2
+  )
+{
+  unsigned long long jresult ;
+  LLVMGenericValueRef arg1 = (LLVMGenericValueRef) 0 ;
+  int arg2 ;
+  unsigned long long result;
+  
+  arg1 = (LLVMGenericValueRef)jarg1; 
+  
+  
+  arg2 = (int) jarg2; 
+  
+  
+  result = (unsigned long long)LLVMGenericValueToInt(arg1,arg2);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void* SWIGSTDCALL Ada_LLVMGenericValueToPointer (
+  void * jarg1
+  )
+{
+  void* jresult ;
+  LLVMGenericValueRef arg1 = (LLVMGenericValueRef) 0 ;
+  void *result = 0 ;
+  
+  arg1 = (LLVMGenericValueRef)jarg1; 
+  
+  result = (void *)LLVMGenericValueToPointer(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport double SWIGSTDCALL Ada_LLVMGenericValueToFloat (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  double jresult ;
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  LLVMGenericValueRef arg2 = (LLVMGenericValueRef) 0 ;
+  double result;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  arg2 = (LLVMGenericValueRef)jarg2; 
+  
+  result = (double)LLVMGenericValueToFloat(arg1,arg2);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMDisposeGenericValue (
+  void * jarg1
+  )
+{
+  LLVMGenericValueRef arg1 = (LLVMGenericValueRef) 0 ;
+  
+  arg1 = (LLVMGenericValueRef)jarg1; 
+  
+  LLVMDisposeGenericValue(arg1);
+  
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMCreateExecutionEngine (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  )
+{
+  int jresult ;
+  LLVMExecutionEngineRef *arg1 = (LLVMExecutionEngineRef *) 0 ;
+  LLVMModuleProviderRef arg2 = (LLVMModuleProviderRef) 0 ;
+  char **arg3 = (char **) 0 ;
+  int result;
+  
+  arg1 = (LLVMExecutionEngineRef *)jarg1; 
+  
+  arg2 = (LLVMModuleProviderRef)jarg2; 
+  
+  arg3 = (char **)jarg3; 
+  
+  result = (int)LLVMCreateExecutionEngine(arg1,arg2,arg3);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMCreateInterpreter (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  )
+{
+  int jresult ;
+  LLVMExecutionEngineRef *arg1 = (LLVMExecutionEngineRef *) 0 ;
+  LLVMModuleProviderRef arg2 = (LLVMModuleProviderRef) 0 ;
+  char **arg3 = (char **) 0 ;
+  int result;
+  
+  arg1 = (LLVMExecutionEngineRef *)jarg1; 
+  
+  arg2 = (LLVMModuleProviderRef)jarg2; 
+  
+  arg3 = (char **)jarg3; 
+  
+  result = (int)LLVMCreateInterpreter(arg1,arg2,arg3);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMCreateJITCompiler (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  unsigned int jarg3
+  ,
+  
+  void * jarg4
+  )
+{
+  int jresult ;
+  LLVMExecutionEngineRef *arg1 = (LLVMExecutionEngineRef *) 0 ;
+  LLVMModuleProviderRef arg2 = (LLVMModuleProviderRef) 0 ;
+  unsigned int arg3 ;
+  char **arg4 = (char **) 0 ;
+  int result;
+  
+  arg1 = (LLVMExecutionEngineRef *)jarg1; 
+  
+  arg2 = (LLVMModuleProviderRef)jarg2; 
+  
+  
+  arg3 = (unsigned int) jarg3; 
+  
+  
+  arg4 = (char **)jarg4; 
+  
+  result = (int)LLVMCreateJITCompiler(arg1,arg2,arg3,arg4);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMDisposeExecutionEngine (
+  void * jarg1
+  )
+{
+  LLVMExecutionEngineRef arg1 = (LLVMExecutionEngineRef) 0 ;
+  
+  arg1 = (LLVMExecutionEngineRef)jarg1; 
+  
+  LLVMDisposeExecutionEngine(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMRunStaticConstructors (
+  void * jarg1
+  )
+{
+  LLVMExecutionEngineRef arg1 = (LLVMExecutionEngineRef) 0 ;
+  
+  arg1 = (LLVMExecutionEngineRef)jarg1; 
+  
+  LLVMRunStaticConstructors(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMRunStaticDestructors (
+  void * jarg1
+  )
+{
+  LLVMExecutionEngineRef arg1 = (LLVMExecutionEngineRef) 0 ;
+  
+  arg1 = (LLVMExecutionEngineRef)jarg1; 
+  
+  LLVMRunStaticDestructors(arg1);
+  
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMRunFunctionAsMain (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  unsigned int jarg3
+  ,
+  
+  void * jarg4
+  ,
+  
+  void * jarg5
+  )
+{
+  int jresult ;
+  LLVMExecutionEngineRef arg1 = (LLVMExecutionEngineRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  unsigned int arg3 ;
+  char **arg4 = (char **) 0 ;
+  char **arg5 = (char **) 0 ;
+  int result;
+  
+  arg1 = (LLVMExecutionEngineRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  
+  arg3 = (unsigned int) jarg3; 
+  
+  
+  arg4 = (char **)jarg4; 
+  
+  arg5 = (char **)jarg5; 
+  
+  result = (int)LLVMRunFunctionAsMain(arg1,arg2,arg3,(char const *const *)arg4,(char const *const *)arg5);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMRunFunction (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  unsigned int jarg3
+  ,
+  
+  void * jarg4
+  )
+{
+  void * jresult ;
+  LLVMExecutionEngineRef arg1 = (LLVMExecutionEngineRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  unsigned int arg3 ;
+  LLVMGenericValueRef *arg4 = (LLVMGenericValueRef *) 0 ;
+  LLVMGenericValueRef result;
+  
+  arg1 = (LLVMExecutionEngineRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  
+  arg3 = (unsigned int) jarg3; 
+  
+  
+  arg4 = (LLVMGenericValueRef *)jarg4; 
+  
+  result = (LLVMGenericValueRef)LLVMRunFunction(arg1,arg2,arg3,arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMFreeMachineCodeForFunction (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  LLVMExecutionEngineRef arg1 = (LLVMExecutionEngineRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  
+  arg1 = (LLVMExecutionEngineRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  LLVMFreeMachineCodeForFunction(arg1,arg2);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddModuleProvider (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  LLVMExecutionEngineRef arg1 = (LLVMExecutionEngineRef) 0 ;
+  LLVMModuleProviderRef arg2 = (LLVMModuleProviderRef) 0 ;
+  
+  arg1 = (LLVMExecutionEngineRef)jarg1; 
+  
+  arg2 = (LLVMModuleProviderRef)jarg2; 
+  
+  LLVMAddModuleProvider(arg1,arg2);
+  
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMRemoveModuleProvider (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  void * jarg4
+  )
+{
+  int jresult ;
+  LLVMExecutionEngineRef arg1 = (LLVMExecutionEngineRef) 0 ;
+  LLVMModuleProviderRef arg2 = (LLVMModuleProviderRef) 0 ;
+  LLVMModuleRef *arg3 = (LLVMModuleRef *) 0 ;
+  char **arg4 = (char **) 0 ;
+  int result;
+  
+  arg1 = (LLVMExecutionEngineRef)jarg1; 
+  
+  arg2 = (LLVMModuleProviderRef)jarg2; 
+  
+  arg3 = (LLVMModuleRef *)jarg3; 
+  
+  arg4 = (char **)jarg4; 
+  
+  result = (int)LLVMRemoveModuleProvider(arg1,arg2,arg3,arg4);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMFindFunction (
+  void * jarg1
+  ,
+  
+  char * jarg2
+  ,
+  
+  void * jarg3
+  )
+{
+  int jresult ;
+  LLVMExecutionEngineRef arg1 = (LLVMExecutionEngineRef) 0 ;
+  char *arg2 = (char *) 0 ;
+  LLVMValueRef *arg3 = (LLVMValueRef *) 0 ;
+  int result;
+  
+  arg1 = (LLVMExecutionEngineRef)jarg1; 
+  
+  arg2 = jarg2; 
+  
+  arg3 = (LLVMValueRef *)jarg3; 
+  
+  result = (int)LLVMFindFunction(arg1,(char const *)arg2,arg3);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport LLVMTargetDataRef SWIGSTDCALL Ada_LLVMGetExecutionEngineTargetData (
+  void * jarg1
+  )
+{
+  LLVMTargetDataRef jresult ;
+  LLVMExecutionEngineRef arg1 = (LLVMExecutionEngineRef) 0 ;
+  LLVMTargetDataRef result;
+  
+  arg1 = (LLVMExecutionEngineRef)jarg1; 
+  
+  result = LLVMGetExecutionEngineTargetData(arg1);
+  
+  jresult = result; 
+  //jresult = new LLVMTargetDataRef ((LLVMTargetDataRef &) result); 
+  
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddGlobalMapping (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void* jarg3
+  )
+{
+  LLVMExecutionEngineRef arg1 = (LLVMExecutionEngineRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  void *arg3 = (void *) 0 ;
+  
+  arg1 = (LLVMExecutionEngineRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (void *)jarg3; 
+  
+  LLVMAddGlobalMapping(arg1,arg2,arg3);
+  
+  
+}
+
+
+
+DllExport void* SWIGSTDCALL Ada_LLVMGetPointerToGlobal (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void* jresult ;
+  LLVMExecutionEngineRef arg1 = (LLVMExecutionEngineRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  void *result = 0 ;
+  
+  arg1 = (LLVMExecutionEngineRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  result = (void *)LLVMGetPointerToGlobal(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+#ifdef __cplusplus
+}
+#endif
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+

Added: llvm/trunk/bindings/ada/llvm.gpr
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ada/llvm.gpr?rev=79295&view=auto

==============================================================================
--- llvm/trunk/bindings/ada/llvm.gpr (added)
+++ llvm/trunk/bindings/ada/llvm.gpr Mon Aug 17 19:24:36 2009
@@ -0,0 +1,34 @@
+project LLVM is
+
+   for Languages use ("Ada", "C++");
+   for Source_Dirs use (".", "analysis", "bitreader", "bitwriter", "executionengine", "llvm", "target", "transforms");
+   for Object_Dir use "build";
+   for Exec_Dir use ".";
+   for Library_Name use "llvm_ada";
+   for Library_Dir use "lib";
+   for Library_Ali_Dir use "objects";
+
+   package Naming is
+      for Specification_Suffix ("c++") use ".h";
+      for Implementation_Suffix ("c++") use ".cxx";
+   end Naming;
+
+   package Builder is
+      for Default_Switches ("ada") use ("-g");
+   end Builder;
+
+   package Compiler is
+      for Default_Switches ("ada") use ("-gnato", "-fstack-check", "-g", "-gnata", "-gnat05", "-I/usr/local/include");
+      for Default_Switches ("c++") use ("-D__STDC_LIMIT_MACROS", "-D__STDC_CONSTANT_MACROS", "-I../../include", "-g");
+   end Compiler;
+
+   package Binder is
+      for Default_Switches ("ada") use ("-E");
+   end Binder;
+
+   package Linker is
+      for Default_Switches ("c++") use ("-g");
+   end Linker;
+
+end LLVM;
+

Added: llvm/trunk/bindings/ada/llvm/llvm-binding.ads
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ada/llvm/llvm-binding.ads?rev=79295&view=auto

==============================================================================
--- llvm/trunk/bindings/ada/llvm/llvm-binding.ads (added)
+++ llvm/trunk/bindings/ada/llvm/llvm-binding.ads Mon Aug 17 19:24:36 2009
@@ -0,0 +1,1974 @@
+-- This file is generated by SWIG. Do *not* modify by hand.
+--
+
+with Interfaces.C.Strings;
+
+
+package llvm.Binding is
+
+   procedure LLVMDisposeMessage
+     (Message : in Interfaces.C.Strings.chars_ptr);
+
+   function LLVMContextCreate return  llvm.LLVMContextRef;
+
+   function LLVMGetGlobalContext return  llvm.LLVMContextRef;
+
+   procedure LLVMContextDispose (C : in llvm.LLVMContextRef);
+
+   function LLVMModuleCreateWithName
+     (ModuleID : in Interfaces.C.Strings.chars_ptr)
+      return     llvm.LLVMModuleRef;
+
+   function LLVMModuleCreateWithNameInContext
+     (ModuleID : in Interfaces.C.Strings.chars_ptr;
+      C        : in llvm.LLVMContextRef)
+      return     llvm.LLVMModuleRef;
+
+   procedure LLVMDisposeModule (M : in llvm.LLVMModuleRef);
+
+   function LLVMGetDataLayout
+     (M    : in llvm.LLVMModuleRef)
+      return Interfaces.C.Strings.chars_ptr;
+
+   procedure LLVMSetDataLayout
+     (M      : in llvm.LLVMModuleRef;
+      Triple : in Interfaces.C.Strings.chars_ptr);
+
+   function LLVMGetTarget
+     (M    : in llvm.LLVMModuleRef)
+      return Interfaces.C.Strings.chars_ptr;
+
+   procedure LLVMSetTarget
+     (M      : in llvm.LLVMModuleRef;
+      Triple : in Interfaces.C.Strings.chars_ptr);
+
+   function LLVMAddTypeName
+     (M    : in llvm.LLVMModuleRef;
+      Name : in Interfaces.C.Strings.chars_ptr;
+      Ty   : in llvm.LLVMTypeRef)
+      return Interfaces.C.int;
+
+   procedure LLVMDeleteTypeName
+     (M    : in llvm.LLVMModuleRef;
+      Name : in Interfaces.C.Strings.chars_ptr);
+
+   function LLVMGetTypeByName
+     (M    : in llvm.LLVMModuleRef;
+      Name : in Interfaces.C.Strings.chars_ptr)
+      return llvm.LLVMTypeRef;
+
+   procedure LLVMDumpModule (M : in llvm.LLVMModuleRef);
+
+   function LLVMGetTypeKind
+     (Ty   : in llvm.LLVMTypeRef)
+      return llvm.LLVMTypeKind;
+
+   function LLVMInt1Type return  llvm.LLVMTypeRef;
+
+   function LLVMInt8Type return  llvm.LLVMTypeRef;
+
+   function LLVMInt16Type return  llvm.LLVMTypeRef;
+
+   function LLVMInt32Type return  llvm.LLVMTypeRef;
+
+   function LLVMInt64Type return  llvm.LLVMTypeRef;
+
+   function LLVMIntType
+     (NumBits : in Interfaces.C.unsigned)
+      return    llvm.LLVMTypeRef;
+
+   function LLVMGetIntTypeWidth
+     (IntegerTy : in llvm.LLVMTypeRef)
+      return      Interfaces.C.unsigned;
+
+   function LLVMFloatType return  llvm.LLVMTypeRef;
+
+   function LLVMDoubleType return  llvm.LLVMTypeRef;
+
+   function LLVMX86FP80Type return  llvm.LLVMTypeRef;
+
+   function LLVMFP128Type return  llvm.LLVMTypeRef;
+
+   function LLVMPPCFP128Type return  llvm.LLVMTypeRef;
+
+   function LLVMFunctionType
+     (ReturnType : in llvm.LLVMTypeRef;
+      ParamTypes : access llvm.LLVMTypeRef;
+      ParamCount : in Interfaces.C.unsigned;
+      IsVarArg   : in Interfaces.C.int)
+      return       llvm.LLVMTypeRef;
+
+   function LLVMIsFunctionVarArg
+     (FunctionTy : in llvm.LLVMTypeRef)
+      return       Interfaces.C.int;
+
+   function LLVMGetReturnType
+     (FunctionTy : in llvm.LLVMTypeRef)
+      return       llvm.LLVMTypeRef;
+
+   function LLVMCountParamTypes
+     (FunctionTy : in llvm.LLVMTypeRef)
+      return       Interfaces.C.unsigned;
+
+   procedure LLVMGetParamTypes
+     (FunctionTy : in llvm.LLVMTypeRef;
+      Dest       : access llvm.LLVMTypeRef);
+
+   function LLVMStructType
+     (ElementTypes : access llvm.LLVMTypeRef;
+      ElementCount : in Interfaces.C.unsigned;
+      Packed       : in Interfaces.C.int)
+      return         llvm.LLVMTypeRef;
+
+   function LLVMCountStructElementTypes
+     (StructTy : in llvm.LLVMTypeRef)
+      return     Interfaces.C.unsigned;
+
+   procedure LLVMGetStructElementTypes
+     (StructTy : in llvm.LLVMTypeRef;
+      Dest     : access llvm.LLVMTypeRef);
+
+   function LLVMIsPackedStruct
+     (StructTy : in llvm.LLVMTypeRef)
+      return     Interfaces.C.int;
+
+   function LLVMArrayType
+     (ElementType  : in llvm.LLVMTypeRef;
+      ElementCount : in Interfaces.C.unsigned)
+      return         llvm.LLVMTypeRef;
+
+   function LLVMPointerType
+     (ElementType  : in llvm.LLVMTypeRef;
+      AddressSpace : in Interfaces.C.unsigned)
+      return         llvm.LLVMTypeRef;
+
+   function LLVMVectorType
+     (ElementType  : in llvm.LLVMTypeRef;
+      ElementCount : in Interfaces.C.unsigned)
+      return         llvm.LLVMTypeRef;
+
+   function LLVMGetElementType
+     (Ty   : in llvm.LLVMTypeRef)
+      return llvm.LLVMTypeRef;
+
+   function LLVMGetArrayLength
+     (ArrayTy : in llvm.LLVMTypeRef)
+      return    Interfaces.C.unsigned;
+
+   function LLVMGetPointerAddressSpace
+     (PointerTy : in llvm.LLVMTypeRef)
+      return      Interfaces.C.unsigned;
+
+   function LLVMGetVectorSize
+     (VectorTy : in llvm.LLVMTypeRef)
+      return     Interfaces.C.unsigned;
+
+   function LLVMVoidType return  llvm.LLVMTypeRef;
+
+   function LLVMLabelType return  llvm.LLVMTypeRef;
+
+   function LLVMOpaqueType return  llvm.LLVMTypeRef;
+
+   function LLVMCreateTypeHandle
+     (PotentiallyAbstractTy : in llvm.LLVMTypeRef)
+      return                  llvm.LLVMTypeHandleRef;
+
+   procedure LLVMRefineType
+     (AbstractTy : in llvm.LLVMTypeRef;
+      ConcreteTy : in llvm.LLVMTypeRef);
+
+   function LLVMResolveTypeHandle
+     (TypeHandle : in llvm.LLVMTypeHandleRef)
+      return       llvm.LLVMTypeRef;
+
+   procedure LLVMDisposeTypeHandle (TypeHandle : in llvm.LLVMTypeHandleRef);
+
+   function LLVMTypeOf (Val : in llvm.LLVMValueRef) return llvm.LLVMTypeRef;
+
+   function LLVMGetValueName
+     (Val  : in llvm.LLVMValueRef)
+      return Interfaces.C.Strings.chars_ptr;
+
+   procedure LLVMSetValueName
+     (Val  : in llvm.LLVMValueRef;
+      Name : in Interfaces.C.Strings.chars_ptr);
+
+   procedure LLVMDumpValue (Val : in llvm.LLVMValueRef);
+
+   function LLVMIsAArgument
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsABasicBlock
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAInlineAsm
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAUser
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAConstant
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAConstantAggregateZero
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAConstantArray
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAConstantExpr
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAConstantFP
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAConstantInt
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAConstantPointerNull
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAConstantStruct
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAConstantVector
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAGlobalValue
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAFunction
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAGlobalAlias
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAGlobalVariable
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAUndefValue
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAInstruction
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsABinaryOperator
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsACallInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAIntrinsicInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsADbgInfoIntrinsic
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsADbgDeclareInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsADbgFuncStartInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsADbgRegionEndInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsADbgRegionStartInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsADbgStopPointInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAEHSelectorInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAMemIntrinsic
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAMemCpyInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAMemMoveInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAMemSetInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsACmpInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAFCmpInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAICmpInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAExtractElementInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAGetElementPtrInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAInsertElementInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAInsertValueInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAPHINode
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsASelectInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAShuffleVectorInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAStoreInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsATerminatorInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsABranchInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAInvokeInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAReturnInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsASwitchInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAUnreachableInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAUnwindInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAUnaryInstruction
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAAllocationInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAAllocaInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAMallocInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsACastInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsABitCastInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAFPExtInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAFPToSIInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAFPToUIInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAFPTruncInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAIntToPtrInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAPtrToIntInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsASExtInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsASIToFPInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsATruncInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAUIToFPInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAZExtInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAExtractValueInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAFreeInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsALoadInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsAVAArgInst
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMConstNull
+     (Ty   : in llvm.LLVMTypeRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMConstAllOnes
+     (Ty   : in llvm.LLVMTypeRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMGetUndef
+     (Ty   : in llvm.LLVMTypeRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMIsConstant
+     (Val  : in llvm.LLVMValueRef)
+      return Interfaces.C.int;
+
+   function LLVMIsNull (Val : in llvm.LLVMValueRef) return Interfaces.C.int;
+
+   function LLVMIsUndef
+     (Val  : in llvm.LLVMValueRef)
+      return Interfaces.C.int;
+
+   function LLVMConstPointerNull
+     (Ty   : in llvm.LLVMTypeRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMConstInt
+     (IntTy      : in llvm.LLVMTypeRef;
+      N          : in Interfaces.C.Extensions.unsigned_long_long;
+      SignExtend : in Interfaces.C.int)
+      return       llvm.LLVMValueRef;
+
+   function LLVMConstReal
+     (RealTy : in llvm.LLVMTypeRef;
+      N      : in Interfaces.C.double)
+      return   llvm.LLVMValueRef;
+
+   function LLVMConstRealOfString
+     (RealTy : in llvm.LLVMTypeRef;
+      Text   : in Interfaces.C.Strings.chars_ptr)
+      return   llvm.LLVMValueRef;
+
+   function LLVMConstString
+     (Str               : in Interfaces.C.Strings.chars_ptr;
+      Length            : in Interfaces.C.unsigned;
+      DontNullTerminate : in Interfaces.C.int)
+      return              llvm.LLVMValueRef;
+
+   function LLVMConstArray
+     (ElementTy    : in llvm.LLVMTypeRef;
+      ConstantVals : access llvm.LLVMValueRef;
+      Length       : in Interfaces.C.unsigned)
+      return         llvm.LLVMValueRef;
+
+   function LLVMConstStruct
+     (ConstantVals : access llvm.LLVMValueRef;
+      Count        : in Interfaces.C.unsigned;
+      packed       : in Interfaces.C.int)
+      return         llvm.LLVMValueRef;
+
+   function LLVMConstVector
+     (ScalarConstantVals : access llvm.LLVMValueRef;
+      Size               : in Interfaces.C.unsigned)
+      return               llvm.LLVMValueRef;
+
+   function LLVMSizeOf (Ty : in llvm.LLVMTypeRef) return llvm.LLVMValueRef;
+
+   function LLVMConstNeg
+     (ConstantVal : in llvm.LLVMValueRef)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstNot
+     (ConstantVal : in llvm.LLVMValueRef)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstAdd
+     (LHSConstant : in llvm.LLVMValueRef;
+      RHSConstant : in llvm.LLVMValueRef)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstSub
+     (LHSConstant : in llvm.LLVMValueRef;
+      RHSConstant : in llvm.LLVMValueRef)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstMul
+     (LHSConstant : in llvm.LLVMValueRef;
+      RHSConstant : in llvm.LLVMValueRef)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstUDiv
+     (LHSConstant : in llvm.LLVMValueRef;
+      RHSConstant : in llvm.LLVMValueRef)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstSDiv
+     (LHSConstant : in llvm.LLVMValueRef;
+      RHSConstant : in llvm.LLVMValueRef)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstFDiv
+     (LHSConstant : in llvm.LLVMValueRef;
+      RHSConstant : in llvm.LLVMValueRef)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstURem
+     (LHSConstant : in llvm.LLVMValueRef;
+      RHSConstant : in llvm.LLVMValueRef)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstSRem
+     (LHSConstant : in llvm.LLVMValueRef;
+      RHSConstant : in llvm.LLVMValueRef)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstFRem
+     (LHSConstant : in llvm.LLVMValueRef;
+      RHSConstant : in llvm.LLVMValueRef)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstAnd
+     (LHSConstant : in llvm.LLVMValueRef;
+      RHSConstant : in llvm.LLVMValueRef)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstOr
+     (LHSConstant : in llvm.LLVMValueRef;
+      RHSConstant : in llvm.LLVMValueRef)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstXor
+     (LHSConstant : in llvm.LLVMValueRef;
+      RHSConstant : in llvm.LLVMValueRef)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstICmp
+     (Predicate   : in llvm.LLVMIntPredicate;
+      LHSConstant : in llvm.LLVMValueRef;
+      RHSConstant : in llvm.LLVMValueRef)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstFCmp
+     (Predicate   : in llvm.LLVMRealPredicate;
+      LHSConstant : in llvm.LLVMValueRef;
+      RHSConstant : in llvm.LLVMValueRef)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstShl
+     (LHSConstant : in llvm.LLVMValueRef;
+      RHSConstant : in llvm.LLVMValueRef)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstLShr
+     (LHSConstant : in llvm.LLVMValueRef;
+      RHSConstant : in llvm.LLVMValueRef)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstAShr
+     (LHSConstant : in llvm.LLVMValueRef;
+      RHSConstant : in llvm.LLVMValueRef)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstGEP
+     (ConstantVal     : in llvm.LLVMValueRef;
+      ConstantIndices : access llvm.LLVMValueRef;
+      NumIndices      : in Interfaces.C.unsigned)
+      return            llvm.LLVMValueRef;
+
+   function LLVMConstTrunc
+     (ConstantVal : in llvm.LLVMValueRef;
+      ToType      : in llvm.LLVMTypeRef)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstSExt
+     (ConstantVal : in llvm.LLVMValueRef;
+      ToType      : in llvm.LLVMTypeRef)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstZExt
+     (ConstantVal : in llvm.LLVMValueRef;
+      ToType      : in llvm.LLVMTypeRef)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstFPTrunc
+     (ConstantVal : in llvm.LLVMValueRef;
+      ToType      : in llvm.LLVMTypeRef)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstFPExt
+     (ConstantVal : in llvm.LLVMValueRef;
+      ToType      : in llvm.LLVMTypeRef)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstUIToFP
+     (ConstantVal : in llvm.LLVMValueRef;
+      ToType      : in llvm.LLVMTypeRef)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstSIToFP
+     (ConstantVal : in llvm.LLVMValueRef;
+      ToType      : in llvm.LLVMTypeRef)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstFPToUI
+     (ConstantVal : in llvm.LLVMValueRef;
+      ToType      : in llvm.LLVMTypeRef)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstFPToSI
+     (ConstantVal : in llvm.LLVMValueRef;
+      ToType      : in llvm.LLVMTypeRef)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstPtrToInt
+     (ConstantVal : in llvm.LLVMValueRef;
+      ToType      : in llvm.LLVMTypeRef)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstIntToPtr
+     (ConstantVal : in llvm.LLVMValueRef;
+      ToType      : in llvm.LLVMTypeRef)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstBitCast
+     (ConstantVal : in llvm.LLVMValueRef;
+      ToType      : in llvm.LLVMTypeRef)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstSelect
+     (ConstantCondition : in llvm.LLVMValueRef;
+      ConstantIfTrue    : in llvm.LLVMValueRef;
+      ConstantIfFalse   : in llvm.LLVMValueRef)
+      return              llvm.LLVMValueRef;
+
+   function LLVMConstExtractElement
+     (VectorConstant : in llvm.LLVMValueRef;
+      IndexConstant  : in llvm.LLVMValueRef)
+      return           llvm.LLVMValueRef;
+
+   function LLVMConstInsertElement
+     (VectorConstant       : in llvm.LLVMValueRef;
+      ElementValueConstant : in llvm.LLVMValueRef;
+      IndexConstant        : in llvm.LLVMValueRef)
+      return                 llvm.LLVMValueRef;
+
+   function LLVMConstShuffleVector
+     (VectorAConstant : in llvm.LLVMValueRef;
+      VectorBConstant : in llvm.LLVMValueRef;
+      MaskConstant    : in llvm.LLVMValueRef)
+      return            llvm.LLVMValueRef;
+
+   function LLVMConstExtractValue
+     (AggConstant : in llvm.LLVMValueRef;
+      IdxList     : access Interfaces.C.unsigned;
+      NumIdx      : in Interfaces.C.unsigned)
+      return        llvm.LLVMValueRef;
+
+   function LLVMConstInsertValue
+     (AggConstant          : in llvm.LLVMValueRef;
+      ElementValueConstant : in llvm.LLVMValueRef;
+      IdxList              : access Interfaces.C.unsigned;
+      NumIdx               : in Interfaces.C.unsigned)
+      return                 llvm.LLVMValueRef;
+
+   function LLVMConstInlineAsm
+     (Ty             : in llvm.LLVMTypeRef;
+      AsmString      : in Interfaces.C.Strings.chars_ptr;
+      Constraints    : in Interfaces.C.Strings.chars_ptr;
+      HasSideEffects : in Interfaces.C.int)
+      return           llvm.LLVMValueRef;
+
+   function LLVMGetGlobalParent
+     (Global : in llvm.LLVMValueRef)
+      return   llvm.LLVMModuleRef;
+
+   function LLVMIsDeclaration
+     (Global : in llvm.LLVMValueRef)
+      return   Interfaces.C.int;
+
+   function LLVMGetLinkage
+     (Global : in llvm.LLVMValueRef)
+      return   llvm.LLVMLinkage;
+
+   procedure LLVMSetLinkage
+     (Global  : in llvm.LLVMValueRef;
+      Linkage : in llvm.LLVMLinkage);
+
+   function LLVMGetSection
+     (Global : in llvm.LLVMValueRef)
+      return   Interfaces.C.Strings.chars_ptr;
+
+   procedure LLVMSetSection
+     (Global  : in llvm.LLVMValueRef;
+      Section : in Interfaces.C.Strings.chars_ptr);
+
+   function LLVMGetVisibility
+     (Global : in llvm.LLVMValueRef)
+      return   llvm.LLVMVisibility;
+
+   procedure LLVMSetVisibility
+     (Global : in llvm.LLVMValueRef;
+      Viz    : in llvm.LLVMVisibility);
+
+   function LLVMGetAlignment
+     (Global : in llvm.LLVMValueRef)
+      return   Interfaces.C.unsigned;
+
+   procedure LLVMSetAlignment
+     (Global : in llvm.LLVMValueRef;
+      Bytes  : in Interfaces.C.unsigned);
+
+   function LLVMAddGlobal
+     (M    : in llvm.LLVMModuleRef;
+      Ty   : in llvm.LLVMTypeRef;
+      Name : in Interfaces.C.Strings.chars_ptr)
+      return llvm.LLVMValueRef;
+
+   function LLVMGetNamedGlobal
+     (M    : in llvm.LLVMModuleRef;
+      Name : in Interfaces.C.Strings.chars_ptr)
+      return llvm.LLVMValueRef;
+
+   function LLVMGetFirstGlobal
+     (M    : in llvm.LLVMModuleRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMGetLastGlobal
+     (M    : in llvm.LLVMModuleRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMGetNextGlobal
+     (GlobalVar : in llvm.LLVMValueRef)
+      return      llvm.LLVMValueRef;
+
+   function LLVMGetPreviousGlobal
+     (GlobalVar : in llvm.LLVMValueRef)
+      return      llvm.LLVMValueRef;
+
+   procedure LLVMDeleteGlobal (GlobalVar : in llvm.LLVMValueRef);
+
+   function LLVMGetInitializer
+     (GlobalVar : in llvm.LLVMValueRef)
+      return      llvm.LLVMValueRef;
+
+   procedure LLVMSetInitializer
+     (GlobalVar   : in llvm.LLVMValueRef;
+      ConstantVal : in llvm.LLVMValueRef);
+
+   function LLVMIsThreadLocal
+     (GlobalVar : in llvm.LLVMValueRef)
+      return      Interfaces.C.int;
+
+   procedure LLVMSetThreadLocal
+     (GlobalVar     : in llvm.LLVMValueRef;
+      IsThreadLocal : in Interfaces.C.int);
+
+   function LLVMIsGlobalConstant
+     (GlobalVar : in llvm.LLVMValueRef)
+      return      Interfaces.C.int;
+
+   procedure LLVMSetGlobalConstant
+     (GlobalVar  : in llvm.LLVMValueRef;
+      IsConstant : in Interfaces.C.int);
+
+   function LLVMAddAlias
+     (M       : in llvm.LLVMModuleRef;
+      Ty      : in llvm.LLVMTypeRef;
+      Aliasee : in llvm.LLVMValueRef;
+      Name    : in Interfaces.C.Strings.chars_ptr)
+      return    llvm.LLVMValueRef;
+
+   function LLVMAddFunction
+     (M          : in llvm.LLVMModuleRef;
+      Name       : in Interfaces.C.Strings.chars_ptr;
+      FunctionTy : in llvm.LLVMTypeRef)
+      return       llvm.LLVMValueRef;
+
+   function LLVMGetNamedFunction
+     (M    : in llvm.LLVMModuleRef;
+      Name : in Interfaces.C.Strings.chars_ptr)
+      return llvm.LLVMValueRef;
+
+   function LLVMGetFirstFunction
+     (M    : in llvm.LLVMModuleRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMGetLastFunction
+     (M    : in llvm.LLVMModuleRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMGetNextFunction
+     (Fn   : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMGetPreviousFunction
+     (Fn   : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   procedure LLVMDeleteFunction (Fn : in llvm.LLVMValueRef);
+
+   function LLVMGetIntrinsicID
+     (Fn   : in llvm.LLVMValueRef)
+      return Interfaces.C.unsigned;
+
+   function LLVMGetFunctionCallConv
+     (Fn   : in llvm.LLVMValueRef)
+      return Interfaces.C.unsigned;
+
+   procedure LLVMSetFunctionCallConv
+     (Fn : in llvm.LLVMValueRef;
+      CC : in Interfaces.C.unsigned);
+
+   function LLVMGetGC
+     (Fn   : in llvm.LLVMValueRef)
+      return Interfaces.C.Strings.chars_ptr;
+
+   procedure LLVMSetGC
+     (Fn   : in llvm.LLVMValueRef;
+      Name : in Interfaces.C.Strings.chars_ptr);
+
+   procedure LLVMAddFunctionAttr
+     (Fn : in llvm.LLVMValueRef;
+      PA : in llvm.LLVMAttribute);
+
+   procedure LLVMRemoveFunctionAttr
+     (Fn : in llvm.LLVMValueRef;
+      PA : in llvm.LLVMAttribute);
+
+   function LLVMCountParams
+     (Fn   : in llvm.LLVMValueRef)
+      return Interfaces.C.unsigned;
+
+   procedure LLVMGetParams
+     (Fn     : in llvm.LLVMValueRef;
+      Params : access llvm.LLVMValueRef);
+
+   function LLVMGetParam
+     (Fn    : in llvm.LLVMValueRef;
+      Index : in Interfaces.C.unsigned)
+      return  llvm.LLVMValueRef;
+
+   function LLVMGetParamParent
+     (Inst : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMGetFirstParam
+     (Fn   : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMGetLastParam
+     (Fn   : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMGetNextParam
+     (Arg  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMGetPreviousParam
+     (Arg  : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   procedure LLVMAddAttribute
+     (Arg : in llvm.LLVMValueRef;
+      PA  : in llvm.LLVMAttribute);
+
+   procedure LLVMRemoveAttribute
+     (Arg : in llvm.LLVMValueRef;
+      PA  : in llvm.LLVMAttribute);
+
+   procedure LLVMSetParamAlignment
+     (Arg   : in llvm.LLVMValueRef;
+      align : in Interfaces.C.unsigned);
+
+   function LLVMBasicBlockAsValue
+     (BB   : in llvm.LLVMBasicBlockRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMValueIsBasicBlock
+     (Val  : in llvm.LLVMValueRef)
+      return Interfaces.C.int;
+
+   function LLVMValueAsBasicBlock
+     (Val  : in llvm.LLVMValueRef)
+      return llvm.LLVMBasicBlockRef;
+
+   function LLVMGetBasicBlockParent
+     (BB   : in llvm.LLVMBasicBlockRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMCountBasicBlocks
+     (Fn   : in llvm.LLVMValueRef)
+      return Interfaces.C.unsigned;
+
+   procedure LLVMGetBasicBlocks
+     (Fn          : in llvm.LLVMValueRef;
+      BasicBlocks : access llvm.LLVMBasicBlockRef);
+
+   function LLVMGetFirstBasicBlock
+     (Fn   : in llvm.LLVMValueRef)
+      return llvm.LLVMBasicBlockRef;
+
+   function LLVMGetLastBasicBlock
+     (Fn   : in llvm.LLVMValueRef)
+      return llvm.LLVMBasicBlockRef;
+
+   function LLVMGetNextBasicBlock
+     (BB   : in llvm.LLVMBasicBlockRef)
+      return llvm.LLVMBasicBlockRef;
+
+   function LLVMGetPreviousBasicBlock
+     (BB   : in llvm.LLVMBasicBlockRef)
+      return llvm.LLVMBasicBlockRef;
+
+   function LLVMGetEntryBasicBlock
+     (Fn   : in llvm.LLVMValueRef)
+      return llvm.LLVMBasicBlockRef;
+
+   function LLVMAppendBasicBlock
+     (Fn   : in llvm.LLVMValueRef;
+      Name : in Interfaces.C.Strings.chars_ptr)
+      return llvm.LLVMBasicBlockRef;
+
+   function LLVMInsertBasicBlock
+     (InsertBeforeBB : in llvm.LLVMBasicBlockRef;
+      Name           : in Interfaces.C.Strings.chars_ptr)
+      return           llvm.LLVMBasicBlockRef;
+
+   procedure LLVMDeleteBasicBlock (BB : in llvm.LLVMBasicBlockRef);
+
+   function LLVMGetInstructionParent
+     (Inst : in llvm.LLVMValueRef)
+      return llvm.LLVMBasicBlockRef;
+
+   function LLVMGetFirstInstruction
+     (BB   : in llvm.LLVMBasicBlockRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMGetLastInstruction
+     (BB   : in llvm.LLVMBasicBlockRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMGetNextInstruction
+     (Inst : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   function LLVMGetPreviousInstruction
+     (Inst : in llvm.LLVMValueRef)
+      return llvm.LLVMValueRef;
+
+   procedure LLVMSetInstructionCallConv
+     (Instr : in llvm.LLVMValueRef;
+      CC    : in Interfaces.C.unsigned);
+
+   function LLVMGetInstructionCallConv
+     (Instr : in llvm.LLVMValueRef)
+      return  Interfaces.C.unsigned;
+
+   procedure LLVMAddInstrAttribute
+     (Instr : in llvm.LLVMValueRef;
+      index : in Interfaces.C.unsigned;
+      arg_1 : in llvm.LLVMAttribute);
+
+   procedure LLVMRemoveInstrAttribute
+     (Instr : in llvm.LLVMValueRef;
+      index : in Interfaces.C.unsigned;
+      arg_1 : in llvm.LLVMAttribute);
+
+   procedure LLVMSetInstrParamAlignment
+     (Instr : in llvm.LLVMValueRef;
+      index : in Interfaces.C.unsigned;
+      align : in Interfaces.C.unsigned);
+
+   function LLVMIsTailCall
+     (CallInst : in llvm.LLVMValueRef)
+      return     Interfaces.C.int;
+
+   procedure LLVMSetTailCall
+     (CallInst   : in llvm.LLVMValueRef;
+      IsTailCall : in Interfaces.C.int);
+
+   procedure LLVMAddIncoming
+     (PhiNode        : in llvm.LLVMValueRef;
+      IncomingValues : access llvm.LLVMValueRef;
+      IncomingBlocks : access llvm.LLVMBasicBlockRef;
+      Count          : in Interfaces.C.unsigned);
+
+   function LLVMCountIncoming
+     (PhiNode : in llvm.LLVMValueRef)
+      return    Interfaces.C.unsigned;
+
+   function LLVMGetIncomingValue
+     (PhiNode : in llvm.LLVMValueRef;
+      Index   : in Interfaces.C.unsigned)
+      return    llvm.LLVMValueRef;
+
+   function LLVMGetIncomingBlock
+     (PhiNode : in llvm.LLVMValueRef;
+      Index   : in Interfaces.C.unsigned)
+      return    llvm.LLVMBasicBlockRef;
+
+   function LLVMCreateBuilder return  llvm.LLVMBuilderRef;
+
+   procedure LLVMPositionBuilder
+     (Builder : in llvm.LLVMBuilderRef;
+      Block   : in llvm.LLVMBasicBlockRef;
+      Instr   : in llvm.LLVMValueRef);
+
+   procedure LLVMPositionBuilderBefore
+     (Builder : in llvm.LLVMBuilderRef;
+      Instr   : in llvm.LLVMValueRef);
+
+   procedure LLVMPositionBuilderAtEnd
+     (Builder : in llvm.LLVMBuilderRef;
+      Block   : in llvm.LLVMBasicBlockRef);
+
+   function LLVMGetInsertBlock
+     (Builder : in llvm.LLVMBuilderRef)
+      return    llvm.LLVMBasicBlockRef;
+
+   procedure LLVMClearInsertionPosition (Builder : in llvm.LLVMBuilderRef);
+
+   procedure LLVMInsertIntoBuilder
+     (Builder : in llvm.LLVMBuilderRef;
+      Instr   : in llvm.LLVMValueRef);
+
+   procedure LLVMDisposeBuilder (Builder : in llvm.LLVMBuilderRef);
+
+   function LLVMBuildRetVoid
+     (arg_1 : in llvm.LLVMBuilderRef)
+      return  llvm.LLVMValueRef;
+
+   function LLVMBuildRet
+     (arg_1 : in llvm.LLVMBuilderRef;
+      V     : in llvm.LLVMValueRef)
+      return  llvm.LLVMValueRef;
+
+   function LLVMBuildBr
+     (arg_1 : in llvm.LLVMBuilderRef;
+      Dest  : in llvm.LLVMBasicBlockRef)
+      return  llvm.LLVMValueRef;
+
+   function LLVMBuildCondBr
+     (arg_1    : in llvm.LLVMBuilderRef;
+      the_If   : in llvm.LLVMValueRef;
+      the_Then : in llvm.LLVMBasicBlockRef;
+      the_Else : in llvm.LLVMBasicBlockRef)
+      return     llvm.LLVMValueRef;
+
+   function LLVMBuildSwitch
+     (arg_1    : in llvm.LLVMBuilderRef;
+      V        : in llvm.LLVMValueRef;
+      the_Else : in llvm.LLVMBasicBlockRef;
+      NumCases : in Interfaces.C.unsigned)
+      return     llvm.LLVMValueRef;
+
+   function LLVMBuildInvoke
+     (arg_1    : in llvm.LLVMBuilderRef;
+      Fn       : in llvm.LLVMValueRef;
+      Args     : access llvm.LLVMValueRef;
+      NumArgs  : in Interfaces.C.unsigned;
+      the_Then : in llvm.LLVMBasicBlockRef;
+      Catch    : in llvm.LLVMBasicBlockRef;
+      Name     : in Interfaces.C.Strings.chars_ptr)
+      return     llvm.LLVMValueRef;
+
+   function LLVMBuildUnwind
+     (arg_1 : in llvm.LLVMBuilderRef)
+      return  llvm.LLVMValueRef;
+
+   function LLVMBuildUnreachable
+     (arg_1 : in llvm.LLVMBuilderRef)
+      return  llvm.LLVMValueRef;
+
+   procedure LLVMAddCase
+     (Switch : in llvm.LLVMValueRef;
+      OnVal  : in llvm.LLVMValueRef;
+      Dest   : in llvm.LLVMBasicBlockRef);
+
+   function LLVMBuildAdd
+     (arg_1 : in llvm.LLVMBuilderRef;
+      LHS   : in llvm.LLVMValueRef;
+      RHS   : in llvm.LLVMValueRef;
+      Name  : in Interfaces.C.Strings.chars_ptr)
+      return  llvm.LLVMValueRef;
+
+   function LLVMBuildSub
+     (arg_1 : in llvm.LLVMBuilderRef;
+      LHS   : in llvm.LLVMValueRef;
+      RHS   : in llvm.LLVMValueRef;
+      Name  : in Interfaces.C.Strings.chars_ptr)
+      return  llvm.LLVMValueRef;
+
+   function LLVMBuildMul
+     (arg_1 : in llvm.LLVMBuilderRef;
+      LHS   : in llvm.LLVMValueRef;
+      RHS   : in llvm.LLVMValueRef;
+      Name  : in Interfaces.C.Strings.chars_ptr)
+      return  llvm.LLVMValueRef;
+
+   function LLVMBuildUDiv
+     (arg_1 : in llvm.LLVMBuilderRef;
+      LHS   : in llvm.LLVMValueRef;
+      RHS   : in llvm.LLVMValueRef;
+      Name  : in Interfaces.C.Strings.chars_ptr)
+      return  llvm.LLVMValueRef;
+
+   function LLVMBuildSDiv
+     (arg_1 : in llvm.LLVMBuilderRef;
+      LHS   : in llvm.LLVMValueRef;
+      RHS   : in llvm.LLVMValueRef;
+      Name  : in Interfaces.C.Strings.chars_ptr)
+      return  llvm.LLVMValueRef;
+
+   function LLVMBuildFDiv
+     (arg_1 : in llvm.LLVMBuilderRef;
+      LHS   : in llvm.LLVMValueRef;
+      RHS   : in llvm.LLVMValueRef;
+      Name  : in Interfaces.C.Strings.chars_ptr)
+      return  llvm.LLVMValueRef;
+
+   function LLVMBuildURem
+     (arg_1 : in llvm.LLVMBuilderRef;
+      LHS   : in llvm.LLVMValueRef;
+      RHS   : in llvm.LLVMValueRef;
+      Name  : in Interfaces.C.Strings.chars_ptr)
+      return  llvm.LLVMValueRef;
+
+   function LLVMBuildSRem
+     (arg_1 : in llvm.LLVMBuilderRef;
+      LHS   : in llvm.LLVMValueRef;
+      RHS   : in llvm.LLVMValueRef;
+      Name  : in Interfaces.C.Strings.chars_ptr)
+      return  llvm.LLVMValueRef;
+
+   function LLVMBuildFRem
+     (arg_1 : in llvm.LLVMBuilderRef;
+      LHS   : in llvm.LLVMValueRef;
+      RHS   : in llvm.LLVMValueRef;
+      Name  : in Interfaces.C.Strings.chars_ptr)
+      return  llvm.LLVMValueRef;
+
+   function LLVMBuildShl
+     (arg_1 : in llvm.LLVMBuilderRef;
+      LHS   : in llvm.LLVMValueRef;
+      RHS   : in llvm.LLVMValueRef;
+      Name  : in Interfaces.C.Strings.chars_ptr)
+      return  llvm.LLVMValueRef;
+
+   function LLVMBuildLShr
+     (arg_1 : in llvm.LLVMBuilderRef;
+      LHS   : in llvm.LLVMValueRef;
+      RHS   : in llvm.LLVMValueRef;
+      Name  : in Interfaces.C.Strings.chars_ptr)
+      return  llvm.LLVMValueRef;
+
+   function LLVMBuildAShr
+     (arg_1 : in llvm.LLVMBuilderRef;
+      LHS   : in llvm.LLVMValueRef;
+      RHS   : in llvm.LLVMValueRef;
+      Name  : in Interfaces.C.Strings.chars_ptr)
+      return  llvm.LLVMValueRef;
+
+   function LLVMBuildAnd
+     (arg_1 : in llvm.LLVMBuilderRef;
+      LHS   : in llvm.LLVMValueRef;
+      RHS   : in llvm.LLVMValueRef;
+      Name  : in Interfaces.C.Strings.chars_ptr)
+      return  llvm.LLVMValueRef;
+
+   function LLVMBuildOr
+     (arg_1 : in llvm.LLVMBuilderRef;
+      LHS   : in llvm.LLVMValueRef;
+      RHS   : in llvm.LLVMValueRef;
+      Name  : in Interfaces.C.Strings.chars_ptr)
+      return  llvm.LLVMValueRef;
+
+   function LLVMBuildXor
+     (arg_1 : in llvm.LLVMBuilderRef;
+      LHS   : in llvm.LLVMValueRef;
+      RHS   : in llvm.LLVMValueRef;
+      Name  : in Interfaces.C.Strings.chars_ptr)
+      return  llvm.LLVMValueRef;
+
+   function LLVMBuildNeg
+     (arg_1 : in llvm.LLVMBuilderRef;
+      V     : in llvm.LLVMValueRef;
+      Name  : in Interfaces.C.Strings.chars_ptr)
+      return  llvm.LLVMValueRef;
+
+   function LLVMBuildNot
+     (arg_1 : in llvm.LLVMBuilderRef;
+      V     : in llvm.LLVMValueRef;
+      Name  : in Interfaces.C.Strings.chars_ptr)
+      return  llvm.LLVMValueRef;
+
+   function LLVMBuildMalloc
+     (arg_1 : in llvm.LLVMBuilderRef;
+      Ty    : in llvm.LLVMTypeRef;
+      Name  : in Interfaces.C.Strings.chars_ptr)
+      return  llvm.LLVMValueRef;
+
+   function LLVMBuildArrayMalloc
+     (arg_1 : in llvm.LLVMBuilderRef;
+      Ty    : in llvm.LLVMTypeRef;
+      Val   : in llvm.LLVMValueRef;
+      Name  : in Interfaces.C.Strings.chars_ptr)
+      return  llvm.LLVMValueRef;
+
+   function LLVMBuildAlloca
+     (arg_1 : in llvm.LLVMBuilderRef;
+      Ty    : in llvm.LLVMTypeRef;
+      Name  : in Interfaces.C.Strings.chars_ptr)
+      return  llvm.LLVMValueRef;
+
+   function LLVMBuildArrayAlloca
+     (arg_1 : in llvm.LLVMBuilderRef;
+      Ty    : in llvm.LLVMTypeRef;
+      Val   : in llvm.LLVMValueRef;
+      Name  : in Interfaces.C.Strings.chars_ptr)
+      return  llvm.LLVMValueRef;
+
+   function LLVMBuildFree
+     (arg_1      : in llvm.LLVMBuilderRef;
+      PointerVal : in llvm.LLVMValueRef)
+      return       llvm.LLVMValueRef;
+
+   function LLVMBuildLoad
+     (arg_1      : in llvm.LLVMBuilderRef;
+      PointerVal : in llvm.LLVMValueRef;
+      Name       : in Interfaces.C.Strings.chars_ptr)
+      return       llvm.LLVMValueRef;
+
+   function LLVMBuildStore
+     (arg_1 : in llvm.LLVMBuilderRef;
+      Val   : in llvm.LLVMValueRef;
+      Ptr   : in llvm.LLVMValueRef)
+      return  llvm.LLVMValueRef;
+
+   function LLVMBuildGEP
+     (B          : in llvm.LLVMBuilderRef;
+      Pointer    : in llvm.LLVMValueRef;
+      Indices    : access llvm.LLVMValueRef;
+      NumIndices : in Interfaces.C.unsigned;
+      Name       : in Interfaces.C.Strings.chars_ptr)
+      return       llvm.LLVMValueRef;
+
+   function LLVMBuildTrunc
+     (arg_1  : in llvm.LLVMBuilderRef;
+      Val    : in llvm.LLVMValueRef;
+      DestTy : in llvm.LLVMTypeRef;
+      Name   : in Interfaces.C.Strings.chars_ptr)
+      return   llvm.LLVMValueRef;
+
+   function LLVMBuildZExt
+     (arg_1  : in llvm.LLVMBuilderRef;
+      Val    : in llvm.LLVMValueRef;
+      DestTy : in llvm.LLVMTypeRef;
+      Name   : in Interfaces.C.Strings.chars_ptr)
+      return   llvm.LLVMValueRef;
+
+   function LLVMBuildSExt
+     (arg_1  : in llvm.LLVMBuilderRef;
+      Val    : in llvm.LLVMValueRef;
+      DestTy : in llvm.LLVMTypeRef;
+      Name   : in Interfaces.C.Strings.chars_ptr)
+      return   llvm.LLVMValueRef;
+
+   function LLVMBuildFPToUI
+     (arg_1  : in llvm.LLVMBuilderRef;
+      Val    : in llvm.LLVMValueRef;
+      DestTy : in llvm.LLVMTypeRef;
+      Name   : in Interfaces.C.Strings.chars_ptr)
+      return   llvm.LLVMValueRef;
+
+   function LLVMBuildFPToSI
+     (arg_1  : in llvm.LLVMBuilderRef;
+      Val    : in llvm.LLVMValueRef;
+      DestTy : in llvm.LLVMTypeRef;
+      Name   : in Interfaces.C.Strings.chars_ptr)
+      return   llvm.LLVMValueRef;
+
+   function LLVMBuildUIToFP
+     (arg_1  : in llvm.LLVMBuilderRef;
+      Val    : in llvm.LLVMValueRef;
+      DestTy : in llvm.LLVMTypeRef;
+      Name   : in Interfaces.C.Strings.chars_ptr)
+      return   llvm.LLVMValueRef;
+
+   function LLVMBuildSIToFP
+     (arg_1  : in llvm.LLVMBuilderRef;
+      Val    : in llvm.LLVMValueRef;
+      DestTy : in llvm.LLVMTypeRef;
+      Name   : in Interfaces.C.Strings.chars_ptr)
+      return   llvm.LLVMValueRef;
+
+   function LLVMBuildFPTrunc
+     (arg_1  : in llvm.LLVMBuilderRef;
+      Val    : in llvm.LLVMValueRef;
+      DestTy : in llvm.LLVMTypeRef;
+      Name   : in Interfaces.C.Strings.chars_ptr)
+      return   llvm.LLVMValueRef;
+
+   function LLVMBuildFPExt
+     (arg_1  : in llvm.LLVMBuilderRef;
+      Val    : in llvm.LLVMValueRef;
+      DestTy : in llvm.LLVMTypeRef;
+      Name   : in Interfaces.C.Strings.chars_ptr)
+      return   llvm.LLVMValueRef;
+
+   function LLVMBuildPtrToInt
+     (arg_1  : in llvm.LLVMBuilderRef;
+      Val    : in llvm.LLVMValueRef;
+      DestTy : in llvm.LLVMTypeRef;
+      Name   : in Interfaces.C.Strings.chars_ptr)
+      return   llvm.LLVMValueRef;
+
+   function LLVMBuildIntToPtr
+     (arg_1  : in llvm.LLVMBuilderRef;
+      Val    : in llvm.LLVMValueRef;
+      DestTy : in llvm.LLVMTypeRef;
+      Name   : in Interfaces.C.Strings.chars_ptr)
+      return   llvm.LLVMValueRef;
+
+   function LLVMBuildBitCast
+     (arg_1  : in llvm.LLVMBuilderRef;
+      Val    : in llvm.LLVMValueRef;
+      DestTy : in llvm.LLVMTypeRef;
+      Name   : in Interfaces.C.Strings.chars_ptr)
+      return   llvm.LLVMValueRef;
+
+   function LLVMBuildICmp
+     (arg_1 : in llvm.LLVMBuilderRef;
+      Op    : in llvm.LLVMIntPredicate;
+      LHS   : in llvm.LLVMValueRef;
+      RHS   : in llvm.LLVMValueRef;
+      Name  : in Interfaces.C.Strings.chars_ptr)
+      return  llvm.LLVMValueRef;
+
+   function LLVMBuildFCmp
+     (arg_1 : in llvm.LLVMBuilderRef;
+      Op    : in llvm.LLVMRealPredicate;
+      LHS   : in llvm.LLVMValueRef;
+      RHS   : in llvm.LLVMValueRef;
+      Name  : in Interfaces.C.Strings.chars_ptr)
+      return  llvm.LLVMValueRef;
+
+   function LLVMBuildPhi
+     (arg_1 : in llvm.LLVMBuilderRef;
+      Ty    : in llvm.LLVMTypeRef;
+      Name  : in Interfaces.C.Strings.chars_ptr)
+      return  llvm.LLVMValueRef;
+
+   function LLVMBuildCall
+     (arg_1   : in llvm.LLVMBuilderRef;
+      Fn      : in llvm.LLVMValueRef;
+      Args    : access llvm.LLVMValueRef;
+      NumArgs : in Interfaces.C.unsigned;
+      Name    : in Interfaces.C.Strings.chars_ptr)
+      return    llvm.LLVMValueRef;
+
+   function LLVMBuildSelect
+     (arg_1    : in llvm.LLVMBuilderRef;
+      the_If   : in llvm.LLVMValueRef;
+      the_Then : in llvm.LLVMValueRef;
+      the_Else : in llvm.LLVMValueRef;
+      Name     : in Interfaces.C.Strings.chars_ptr)
+      return     llvm.LLVMValueRef;
+
+   function LLVMBuildVAArg
+     (arg_1 : in llvm.LLVMBuilderRef;
+      List  : in llvm.LLVMValueRef;
+      Ty    : in llvm.LLVMTypeRef;
+      Name  : in Interfaces.C.Strings.chars_ptr)
+      return  llvm.LLVMValueRef;
+
+   function LLVMBuildExtractElement
+     (arg_1  : in llvm.LLVMBuilderRef;
+      VecVal : in llvm.LLVMValueRef;
+      Index  : in llvm.LLVMValueRef;
+      Name   : in Interfaces.C.Strings.chars_ptr)
+      return   llvm.LLVMValueRef;
+
+   function LLVMBuildInsertElement
+     (arg_1  : in llvm.LLVMBuilderRef;
+      VecVal : in llvm.LLVMValueRef;
+      EltVal : in llvm.LLVMValueRef;
+      Index  : in llvm.LLVMValueRef;
+      Name   : in Interfaces.C.Strings.chars_ptr)
+      return   llvm.LLVMValueRef;
+
+   function LLVMBuildShuffleVector
+     (arg_1 : in llvm.LLVMBuilderRef;
+      V1    : in llvm.LLVMValueRef;
+      V2    : in llvm.LLVMValueRef;
+      Mask  : in llvm.LLVMValueRef;
+      Name  : in Interfaces.C.Strings.chars_ptr)
+      return  llvm.LLVMValueRef;
+
+   function LLVMBuildExtractValue
+     (arg_1  : in llvm.LLVMBuilderRef;
+      AggVal : in llvm.LLVMValueRef;
+      Index  : in Interfaces.C.unsigned;
+      Name   : in Interfaces.C.Strings.chars_ptr)
+      return   llvm.LLVMValueRef;
+
+   function LLVMBuildInsertValue
+     (arg_1  : in llvm.LLVMBuilderRef;
+      AggVal : in llvm.LLVMValueRef;
+      EltVal : in llvm.LLVMValueRef;
+      Index  : in Interfaces.C.unsigned;
+      Name   : in Interfaces.C.Strings.chars_ptr)
+      return   llvm.LLVMValueRef;
+
+   function LLVMCreateModuleProviderForExistingModule
+     (M    : in llvm.LLVMModuleRef)
+      return llvm.LLVMModuleProviderRef;
+
+   procedure LLVMDisposeModuleProvider (MP : in llvm.LLVMModuleProviderRef);
+
+   function LLVMCreateMemoryBufferWithContentsOfFile
+     (Path       : in Interfaces.C.Strings.chars_ptr;
+      OutMemBuf  : access llvm.LLVMMemoryBufferRef;
+      OutMessage : access Interfaces.C.Strings.chars_ptr)
+      return       Interfaces.C.int;
+
+   function LLVMCreateMemoryBufferWithSTDIN
+     (OutMemBuf  : access llvm.LLVMMemoryBufferRef;
+      OutMessage : access Interfaces.C.Strings.chars_ptr)
+      return       Interfaces.C.int;
+
+   procedure LLVMDisposeMemoryBuffer (MemBuf : in llvm.LLVMMemoryBufferRef);
+
+   function LLVMCreatePassManager return  llvm.LLVMPassManagerRef;
+
+   function LLVMCreateFunctionPassManager
+     (MP   : in llvm.LLVMModuleProviderRef)
+      return llvm.LLVMPassManagerRef;
+
+   function LLVMRunPassManager
+     (PM   : in llvm.LLVMPassManagerRef;
+      M    : in llvm.LLVMModuleRef)
+      return Interfaces.C.int;
+
+   function LLVMInitializeFunctionPassManager
+     (FPM  : in llvm.LLVMPassManagerRef)
+      return Interfaces.C.int;
+
+   function LLVMRunFunctionPassManager
+     (FPM  : in llvm.LLVMPassManagerRef;
+      F    : in llvm.LLVMValueRef)
+      return Interfaces.C.int;
+
+   function LLVMFinalizeFunctionPassManager
+     (FPM  : in llvm.LLVMPassManagerRef)
+      return Interfaces.C.int;
+
+   procedure LLVMDisposePassManager (PM : in llvm.LLVMPassManagerRef);
+
+private
+
+   pragma Import (C, LLVMDisposeMessage, "Ada_LLVMDisposeMessage");
+   pragma Import (C, LLVMContextCreate, "Ada_LLVMContextCreate");
+   pragma Import (C, LLVMGetGlobalContext, "Ada_LLVMGetGlobalContext");
+   pragma Import (C, LLVMContextDispose, "Ada_LLVMContextDispose");
+   pragma Import
+     (C,
+      LLVMModuleCreateWithName,
+      "Ada_LLVMModuleCreateWithName");
+   pragma Import
+     (C,
+      LLVMModuleCreateWithNameInContext,
+      "Ada_LLVMModuleCreateWithNameInContext");
+   pragma Import (C, LLVMDisposeModule, "Ada_LLVMDisposeModule");
+   pragma Import (C, LLVMGetDataLayout, "Ada_LLVMGetDataLayout");
+   pragma Import (C, LLVMSetDataLayout, "Ada_LLVMSetDataLayout");
+   pragma Import (C, LLVMGetTarget, "Ada_LLVMGetTarget");
+   pragma Import (C, LLVMSetTarget, "Ada_LLVMSetTarget");
+   pragma Import (C, LLVMAddTypeName, "Ada_LLVMAddTypeName");
+   pragma Import (C, LLVMDeleteTypeName, "Ada_LLVMDeleteTypeName");
+   pragma Import (C, LLVMGetTypeByName, "Ada_LLVMGetTypeByName");
+   pragma Import (C, LLVMDumpModule, "Ada_LLVMDumpModule");
+   pragma Import (C, LLVMGetTypeKind, "Ada_LLVMGetTypeKind");
+   pragma Import (C, LLVMInt1Type, "Ada_LLVMInt1Type");
+   pragma Import (C, LLVMInt8Type, "Ada_LLVMInt8Type");
+   pragma Import (C, LLVMInt16Type, "Ada_LLVMInt16Type");
+   pragma Import (C, LLVMInt32Type, "Ada_LLVMInt32Type");
+   pragma Import (C, LLVMInt64Type, "Ada_LLVMInt64Type");
+   pragma Import (C, LLVMIntType, "Ada_LLVMIntType");
+   pragma Import (C, LLVMGetIntTypeWidth, "Ada_LLVMGetIntTypeWidth");
+   pragma Import (C, LLVMFloatType, "Ada_LLVMFloatType");
+   pragma Import (C, LLVMDoubleType, "Ada_LLVMDoubleType");
+   pragma Import (C, LLVMX86FP80Type, "Ada_LLVMX86FP80Type");
+   pragma Import (C, LLVMFP128Type, "Ada_LLVMFP128Type");
+   pragma Import (C, LLVMPPCFP128Type, "Ada_LLVMPPCFP128Type");
+   pragma Import (C, LLVMFunctionType, "Ada_LLVMFunctionType");
+   pragma Import (C, LLVMIsFunctionVarArg, "Ada_LLVMIsFunctionVarArg");
+   pragma Import (C, LLVMGetReturnType, "Ada_LLVMGetReturnType");
+   pragma Import (C, LLVMCountParamTypes, "Ada_LLVMCountParamTypes");
+   pragma Import (C, LLVMGetParamTypes, "Ada_LLVMGetParamTypes");
+   pragma Import (C, LLVMStructType, "Ada_LLVMStructType");
+   pragma Import
+     (C,
+      LLVMCountStructElementTypes,
+      "Ada_LLVMCountStructElementTypes");
+   pragma Import
+     (C,
+      LLVMGetStructElementTypes,
+      "Ada_LLVMGetStructElementTypes");
+   pragma Import (C, LLVMIsPackedStruct, "Ada_LLVMIsPackedStruct");
+   pragma Import (C, LLVMArrayType, "Ada_LLVMArrayType");
+   pragma Import (C, LLVMPointerType, "Ada_LLVMPointerType");
+   pragma Import (C, LLVMVectorType, "Ada_LLVMVectorType");
+   pragma Import (C, LLVMGetElementType, "Ada_LLVMGetElementType");
+   pragma Import (C, LLVMGetArrayLength, "Ada_LLVMGetArrayLength");
+   pragma Import
+     (C,
+      LLVMGetPointerAddressSpace,
+      "Ada_LLVMGetPointerAddressSpace");
+   pragma Import (C, LLVMGetVectorSize, "Ada_LLVMGetVectorSize");
+   pragma Import (C, LLVMVoidType, "Ada_LLVMVoidType");
+   pragma Import (C, LLVMLabelType, "Ada_LLVMLabelType");
+   pragma Import (C, LLVMOpaqueType, "Ada_LLVMOpaqueType");
+   pragma Import (C, LLVMCreateTypeHandle, "Ada_LLVMCreateTypeHandle");
+   pragma Import (C, LLVMRefineType, "Ada_LLVMRefineType");
+   pragma Import (C, LLVMResolveTypeHandle, "Ada_LLVMResolveTypeHandle");
+   pragma Import (C, LLVMDisposeTypeHandle, "Ada_LLVMDisposeTypeHandle");
+   pragma Import (C, LLVMTypeOf, "Ada_LLVMTypeOf");
+   pragma Import (C, LLVMGetValueName, "Ada_LLVMGetValueName");
+   pragma Import (C, LLVMSetValueName, "Ada_LLVMSetValueName");
+   pragma Import (C, LLVMDumpValue, "Ada_LLVMDumpValue");
+   pragma Import (C, LLVMIsAArgument, "Ada_LLVMIsAArgument");
+   pragma Import (C, LLVMIsABasicBlock, "Ada_LLVMIsABasicBlock");
+   pragma Import (C, LLVMIsAInlineAsm, "Ada_LLVMIsAInlineAsm");
+   pragma Import (C, LLVMIsAUser, "Ada_LLVMIsAUser");
+   pragma Import (C, LLVMIsAConstant, "Ada_LLVMIsAConstant");
+   pragma Import
+     (C,
+      LLVMIsAConstantAggregateZero,
+      "Ada_LLVMIsAConstantAggregateZero");
+   pragma Import (C, LLVMIsAConstantArray, "Ada_LLVMIsAConstantArray");
+   pragma Import (C, LLVMIsAConstantExpr, "Ada_LLVMIsAConstantExpr");
+   pragma Import (C, LLVMIsAConstantFP, "Ada_LLVMIsAConstantFP");
+   pragma Import (C, LLVMIsAConstantInt, "Ada_LLVMIsAConstantInt");
+   pragma Import
+     (C,
+      LLVMIsAConstantPointerNull,
+      "Ada_LLVMIsAConstantPointerNull");
+   pragma Import (C, LLVMIsAConstantStruct, "Ada_LLVMIsAConstantStruct");
+   pragma Import (C, LLVMIsAConstantVector, "Ada_LLVMIsAConstantVector");
+   pragma Import (C, LLVMIsAGlobalValue, "Ada_LLVMIsAGlobalValue");
+   pragma Import (C, LLVMIsAFunction, "Ada_LLVMIsAFunction");
+   pragma Import (C, LLVMIsAGlobalAlias, "Ada_LLVMIsAGlobalAlias");
+   pragma Import (C, LLVMIsAGlobalVariable, "Ada_LLVMIsAGlobalVariable");
+   pragma Import (C, LLVMIsAUndefValue, "Ada_LLVMIsAUndefValue");
+   pragma Import (C, LLVMIsAInstruction, "Ada_LLVMIsAInstruction");
+   pragma Import (C, LLVMIsABinaryOperator, "Ada_LLVMIsABinaryOperator");
+   pragma Import (C, LLVMIsACallInst, "Ada_LLVMIsACallInst");
+   pragma Import (C, LLVMIsAIntrinsicInst, "Ada_LLVMIsAIntrinsicInst");
+   pragma Import (C, LLVMIsADbgInfoIntrinsic, "Ada_LLVMIsADbgInfoIntrinsic");
+   pragma Import (C, LLVMIsADbgDeclareInst, "Ada_LLVMIsADbgDeclareInst");
+   pragma Import (C, LLVMIsADbgFuncStartInst, "Ada_LLVMIsADbgFuncStartInst");
+   pragma Import (C, LLVMIsADbgRegionEndInst, "Ada_LLVMIsADbgRegionEndInst");
+   pragma Import
+     (C,
+      LLVMIsADbgRegionStartInst,
+      "Ada_LLVMIsADbgRegionStartInst");
+   pragma Import (C, LLVMIsADbgStopPointInst, "Ada_LLVMIsADbgStopPointInst");
+   pragma Import (C, LLVMIsAEHSelectorInst, "Ada_LLVMIsAEHSelectorInst");
+   pragma Import (C, LLVMIsAMemIntrinsic, "Ada_LLVMIsAMemIntrinsic");
+   pragma Import (C, LLVMIsAMemCpyInst, "Ada_LLVMIsAMemCpyInst");
+   pragma Import (C, LLVMIsAMemMoveInst, "Ada_LLVMIsAMemMoveInst");
+   pragma Import (C, LLVMIsAMemSetInst, "Ada_LLVMIsAMemSetInst");
+   pragma Import (C, LLVMIsACmpInst, "Ada_LLVMIsACmpInst");
+   pragma Import (C, LLVMIsAFCmpInst, "Ada_LLVMIsAFCmpInst");
+   pragma Import (C, LLVMIsAICmpInst, "Ada_LLVMIsAICmpInst");
+   pragma Import
+     (C,
+      LLVMIsAExtractElementInst,
+      "Ada_LLVMIsAExtractElementInst");
+   pragma Import
+     (C,
+      LLVMIsAGetElementPtrInst,
+      "Ada_LLVMIsAGetElementPtrInst");
+   pragma Import
+     (C,
+      LLVMIsAInsertElementInst,
+      "Ada_LLVMIsAInsertElementInst");
+   pragma Import (C, LLVMIsAInsertValueInst, "Ada_LLVMIsAInsertValueInst");
+   pragma Import (C, LLVMIsAPHINode, "Ada_LLVMIsAPHINode");
+   pragma Import (C, LLVMIsASelectInst, "Ada_LLVMIsASelectInst");
+   pragma Import
+     (C,
+      LLVMIsAShuffleVectorInst,
+      "Ada_LLVMIsAShuffleVectorInst");
+   pragma Import (C, LLVMIsAStoreInst, "Ada_LLVMIsAStoreInst");
+   pragma Import (C, LLVMIsATerminatorInst, "Ada_LLVMIsATerminatorInst");
+   pragma Import (C, LLVMIsABranchInst, "Ada_LLVMIsABranchInst");
+   pragma Import (C, LLVMIsAInvokeInst, "Ada_LLVMIsAInvokeInst");
+   pragma Import (C, LLVMIsAReturnInst, "Ada_LLVMIsAReturnInst");
+   pragma Import (C, LLVMIsASwitchInst, "Ada_LLVMIsASwitchInst");
+   pragma Import (C, LLVMIsAUnreachableInst, "Ada_LLVMIsAUnreachableInst");
+   pragma Import (C, LLVMIsAUnwindInst, "Ada_LLVMIsAUnwindInst");
+   pragma Import (C, LLVMIsAUnaryInstruction, "Ada_LLVMIsAUnaryInstruction");
+   pragma Import (C, LLVMIsAAllocationInst, "Ada_LLVMIsAAllocationInst");
+   pragma Import (C, LLVMIsAAllocaInst, "Ada_LLVMIsAAllocaInst");
+   pragma Import (C, LLVMIsAMallocInst, "Ada_LLVMIsAMallocInst");
+   pragma Import (C, LLVMIsACastInst, "Ada_LLVMIsACastInst");
+   pragma Import (C, LLVMIsABitCastInst, "Ada_LLVMIsABitCastInst");
+   pragma Import (C, LLVMIsAFPExtInst, "Ada_LLVMIsAFPExtInst");
+   pragma Import (C, LLVMIsAFPToSIInst, "Ada_LLVMIsAFPToSIInst");
+   pragma Import (C, LLVMIsAFPToUIInst, "Ada_LLVMIsAFPToUIInst");
+   pragma Import (C, LLVMIsAFPTruncInst, "Ada_LLVMIsAFPTruncInst");
+   pragma Import (C, LLVMIsAIntToPtrInst, "Ada_LLVMIsAIntToPtrInst");
+   pragma Import (C, LLVMIsAPtrToIntInst, "Ada_LLVMIsAPtrToIntInst");
+   pragma Import (C, LLVMIsASExtInst, "Ada_LLVMIsASExtInst");
+   pragma Import (C, LLVMIsASIToFPInst, "Ada_LLVMIsASIToFPInst");
+   pragma Import (C, LLVMIsATruncInst, "Ada_LLVMIsATruncInst");
+   pragma Import (C, LLVMIsAUIToFPInst, "Ada_LLVMIsAUIToFPInst");
+   pragma Import (C, LLVMIsAZExtInst, "Ada_LLVMIsAZExtInst");
+   pragma Import (C, LLVMIsAExtractValueInst, "Ada_LLVMIsAExtractValueInst");
+   pragma Import (C, LLVMIsAFreeInst, "Ada_LLVMIsAFreeInst");
+   pragma Import (C, LLVMIsALoadInst, "Ada_LLVMIsALoadInst");
+   pragma Import (C, LLVMIsAVAArgInst, "Ada_LLVMIsAVAArgInst");
+   pragma Import (C, LLVMConstNull, "Ada_LLVMConstNull");
+   pragma Import (C, LLVMConstAllOnes, "Ada_LLVMConstAllOnes");
+   pragma Import (C, LLVMGetUndef, "Ada_LLVMGetUndef");
+   pragma Import (C, LLVMIsConstant, "Ada_LLVMIsConstant");
+   pragma Import (C, LLVMIsNull, "Ada_LLVMIsNull");
+   pragma Import (C, LLVMIsUndef, "Ada_LLVMIsUndef");
+   pragma Import (C, LLVMConstPointerNull, "Ada_LLVMConstPointerNull");
+   pragma Import (C, LLVMConstInt, "Ada_LLVMConstInt");
+   pragma Import (C, LLVMConstReal, "Ada_LLVMConstReal");
+   pragma Import (C, LLVMConstRealOfString, "Ada_LLVMConstRealOfString");
+   pragma Import (C, LLVMConstString, "Ada_LLVMConstString");
+   pragma Import (C, LLVMConstArray, "Ada_LLVMConstArray");
+   pragma Import (C, LLVMConstStruct, "Ada_LLVMConstStruct");
+   pragma Import (C, LLVMConstVector, "Ada_LLVMConstVector");
+   pragma Import (C, LLVMSizeOf, "Ada_LLVMSizeOf");
+   pragma Import (C, LLVMConstNeg, "Ada_LLVMConstNeg");
+   pragma Import (C, LLVMConstNot, "Ada_LLVMConstNot");
+   pragma Import (C, LLVMConstAdd, "Ada_LLVMConstAdd");
+   pragma Import (C, LLVMConstSub, "Ada_LLVMConstSub");
+   pragma Import (C, LLVMConstMul, "Ada_LLVMConstMul");
+   pragma Import (C, LLVMConstUDiv, "Ada_LLVMConstUDiv");
+   pragma Import (C, LLVMConstSDiv, "Ada_LLVMConstSDiv");
+   pragma Import (C, LLVMConstFDiv, "Ada_LLVMConstFDiv");
+   pragma Import (C, LLVMConstURem, "Ada_LLVMConstURem");
+   pragma Import (C, LLVMConstSRem, "Ada_LLVMConstSRem");
+   pragma Import (C, LLVMConstFRem, "Ada_LLVMConstFRem");
+   pragma Import (C, LLVMConstAnd, "Ada_LLVMConstAnd");
+   pragma Import (C, LLVMConstOr, "Ada_LLVMConstOr");
+   pragma Import (C, LLVMConstXor, "Ada_LLVMConstXor");
+   pragma Import (C, LLVMConstICmp, "Ada_LLVMConstICmp");
+   pragma Import (C, LLVMConstFCmp, "Ada_LLVMConstFCmp");
+   pragma Import (C, LLVMConstShl, "Ada_LLVMConstShl");
+   pragma Import (C, LLVMConstLShr, "Ada_LLVMConstLShr");
+   pragma Import (C, LLVMConstAShr, "Ada_LLVMConstAShr");
+   pragma Import (C, LLVMConstGEP, "Ada_LLVMConstGEP");
+   pragma Import (C, LLVMConstTrunc, "Ada_LLVMConstTrunc");
+   pragma Import (C, LLVMConstSExt, "Ada_LLVMConstSExt");
+   pragma Import (C, LLVMConstZExt, "Ada_LLVMConstZExt");
+   pragma Import (C, LLVMConstFPTrunc, "Ada_LLVMConstFPTrunc");
+   pragma Import (C, LLVMConstFPExt, "Ada_LLVMConstFPExt");
+   pragma Import (C, LLVMConstUIToFP, "Ada_LLVMConstUIToFP");
+   pragma Import (C, LLVMConstSIToFP, "Ada_LLVMConstSIToFP");
+   pragma Import (C, LLVMConstFPToUI, "Ada_LLVMConstFPToUI");
+   pragma Import (C, LLVMConstFPToSI, "Ada_LLVMConstFPToSI");
+   pragma Import (C, LLVMConstPtrToInt, "Ada_LLVMConstPtrToInt");
+   pragma Import (C, LLVMConstIntToPtr, "Ada_LLVMConstIntToPtr");
+   pragma Import (C, LLVMConstBitCast, "Ada_LLVMConstBitCast");
+   pragma Import (C, LLVMConstSelect, "Ada_LLVMConstSelect");
+   pragma Import (C, LLVMConstExtractElement, "Ada_LLVMConstExtractElement");
+   pragma Import (C, LLVMConstInsertElement, "Ada_LLVMConstInsertElement");
+   pragma Import (C, LLVMConstShuffleVector, "Ada_LLVMConstShuffleVector");
+   pragma Import (C, LLVMConstExtractValue, "Ada_LLVMConstExtractValue");
+   pragma Import (C, LLVMConstInsertValue, "Ada_LLVMConstInsertValue");
+   pragma Import (C, LLVMConstInlineAsm, "Ada_LLVMConstInlineAsm");
+   pragma Import (C, LLVMGetGlobalParent, "Ada_LLVMGetGlobalParent");
+   pragma Import (C, LLVMIsDeclaration, "Ada_LLVMIsDeclaration");
+   pragma Import (C, LLVMGetLinkage, "Ada_LLVMGetLinkage");
+   pragma Import (C, LLVMSetLinkage, "Ada_LLVMSetLinkage");
+   pragma Import (C, LLVMGetSection, "Ada_LLVMGetSection");
+   pragma Import (C, LLVMSetSection, "Ada_LLVMSetSection");
+   pragma Import (C, LLVMGetVisibility, "Ada_LLVMGetVisibility");
+   pragma Import (C, LLVMSetVisibility, "Ada_LLVMSetVisibility");
+   pragma Import (C, LLVMGetAlignment, "Ada_LLVMGetAlignment");
+   pragma Import (C, LLVMSetAlignment, "Ada_LLVMSetAlignment");
+   pragma Import (C, LLVMAddGlobal, "Ada_LLVMAddGlobal");
+   pragma Import (C, LLVMGetNamedGlobal, "Ada_LLVMGetNamedGlobal");
+   pragma Import (C, LLVMGetFirstGlobal, "Ada_LLVMGetFirstGlobal");
+   pragma Import (C, LLVMGetLastGlobal, "Ada_LLVMGetLastGlobal");
+   pragma Import (C, LLVMGetNextGlobal, "Ada_LLVMGetNextGlobal");
+   pragma Import (C, LLVMGetPreviousGlobal, "Ada_LLVMGetPreviousGlobal");
+   pragma Import (C, LLVMDeleteGlobal, "Ada_LLVMDeleteGlobal");
+   pragma Import (C, LLVMGetInitializer, "Ada_LLVMGetInitializer");
+   pragma Import (C, LLVMSetInitializer, "Ada_LLVMSetInitializer");
+   pragma Import (C, LLVMIsThreadLocal, "Ada_LLVMIsThreadLocal");
+   pragma Import (C, LLVMSetThreadLocal, "Ada_LLVMSetThreadLocal");
+   pragma Import (C, LLVMIsGlobalConstant, "Ada_LLVMIsGlobalConstant");
+   pragma Import (C, LLVMSetGlobalConstant, "Ada_LLVMSetGlobalConstant");
+   pragma Import (C, LLVMAddAlias, "Ada_LLVMAddAlias");
+   pragma Import (C, LLVMAddFunction, "Ada_LLVMAddFunction");
+   pragma Import (C, LLVMGetNamedFunction, "Ada_LLVMGetNamedFunction");
+   pragma Import (C, LLVMGetFirstFunction, "Ada_LLVMGetFirstFunction");
+   pragma Import (C, LLVMGetLastFunction, "Ada_LLVMGetLastFunction");
+   pragma Import (C, LLVMGetNextFunction, "Ada_LLVMGetNextFunction");
+   pragma Import (C, LLVMGetPreviousFunction, "Ada_LLVMGetPreviousFunction");
+   pragma Import (C, LLVMDeleteFunction, "Ada_LLVMDeleteFunction");
+   pragma Import (C, LLVMGetIntrinsicID, "Ada_LLVMGetIntrinsicID");
+   pragma Import (C, LLVMGetFunctionCallConv, "Ada_LLVMGetFunctionCallConv");
+   pragma Import (C, LLVMSetFunctionCallConv, "Ada_LLVMSetFunctionCallConv");
+   pragma Import (C, LLVMGetGC, "Ada_LLVMGetGC");
+   pragma Import (C, LLVMSetGC, "Ada_LLVMSetGC");
+   pragma Import (C, LLVMAddFunctionAttr, "Ada_LLVMAddFunctionAttr");
+   pragma Import (C, LLVMRemoveFunctionAttr, "Ada_LLVMRemoveFunctionAttr");
+   pragma Import (C, LLVMCountParams, "Ada_LLVMCountParams");
+   pragma Import (C, LLVMGetParams, "Ada_LLVMGetParams");
+   pragma Import (C, LLVMGetParam, "Ada_LLVMGetParam");
+   pragma Import (C, LLVMGetParamParent, "Ada_LLVMGetParamParent");
+   pragma Import (C, LLVMGetFirstParam, "Ada_LLVMGetFirstParam");
+   pragma Import (C, LLVMGetLastParam, "Ada_LLVMGetLastParam");
+   pragma Import (C, LLVMGetNextParam, "Ada_LLVMGetNextParam");
+   pragma Import (C, LLVMGetPreviousParam, "Ada_LLVMGetPreviousParam");
+   pragma Import (C, LLVMAddAttribute, "Ada_LLVMAddAttribute");
+   pragma Import (C, LLVMRemoveAttribute, "Ada_LLVMRemoveAttribute");
+   pragma Import (C, LLVMSetParamAlignment, "Ada_LLVMSetParamAlignment");
+   pragma Import (C, LLVMBasicBlockAsValue, "Ada_LLVMBasicBlockAsValue");
+   pragma Import (C, LLVMValueIsBasicBlock, "Ada_LLVMValueIsBasicBlock");
+   pragma Import (C, LLVMValueAsBasicBlock, "Ada_LLVMValueAsBasicBlock");
+   pragma Import (C, LLVMGetBasicBlockParent, "Ada_LLVMGetBasicBlockParent");
+   pragma Import (C, LLVMCountBasicBlocks, "Ada_LLVMCountBasicBlocks");
+   pragma Import (C, LLVMGetBasicBlocks, "Ada_LLVMGetBasicBlocks");
+   pragma Import (C, LLVMGetFirstBasicBlock, "Ada_LLVMGetFirstBasicBlock");
+   pragma Import (C, LLVMGetLastBasicBlock, "Ada_LLVMGetLastBasicBlock");
+   pragma Import (C, LLVMGetNextBasicBlock, "Ada_LLVMGetNextBasicBlock");
+   pragma Import
+     (C,
+      LLVMGetPreviousBasicBlock,
+      "Ada_LLVMGetPreviousBasicBlock");
+   pragma Import (C, LLVMGetEntryBasicBlock, "Ada_LLVMGetEntryBasicBlock");
+   pragma Import (C, LLVMAppendBasicBlock, "Ada_LLVMAppendBasicBlock");
+   pragma Import (C, LLVMInsertBasicBlock, "Ada_LLVMInsertBasicBlock");
+   pragma Import (C, LLVMDeleteBasicBlock, "Ada_LLVMDeleteBasicBlock");
+   pragma Import
+     (C,
+      LLVMGetInstructionParent,
+      "Ada_LLVMGetInstructionParent");
+   pragma Import (C, LLVMGetFirstInstruction, "Ada_LLVMGetFirstInstruction");
+   pragma Import (C, LLVMGetLastInstruction, "Ada_LLVMGetLastInstruction");
+   pragma Import (C, LLVMGetNextInstruction, "Ada_LLVMGetNextInstruction");
+   pragma Import
+     (C,
+      LLVMGetPreviousInstruction,
+      "Ada_LLVMGetPreviousInstruction");
+   pragma Import
+     (C,
+      LLVMSetInstructionCallConv,
+      "Ada_LLVMSetInstructionCallConv");
+   pragma Import
+     (C,
+      LLVMGetInstructionCallConv,
+      "Ada_LLVMGetInstructionCallConv");
+   pragma Import (C, LLVMAddInstrAttribute, "Ada_LLVMAddInstrAttribute");
+   pragma Import
+     (C,
+      LLVMRemoveInstrAttribute,
+      "Ada_LLVMRemoveInstrAttribute");
+   pragma Import
+     (C,
+      LLVMSetInstrParamAlignment,
+      "Ada_LLVMSetInstrParamAlignment");
+   pragma Import (C, LLVMIsTailCall, "Ada_LLVMIsTailCall");
+   pragma Import (C, LLVMSetTailCall, "Ada_LLVMSetTailCall");
+   pragma Import (C, LLVMAddIncoming, "Ada_LLVMAddIncoming");
+   pragma Import (C, LLVMCountIncoming, "Ada_LLVMCountIncoming");
+   pragma Import (C, LLVMGetIncomingValue, "Ada_LLVMGetIncomingValue");
+   pragma Import (C, LLVMGetIncomingBlock, "Ada_LLVMGetIncomingBlock");
+   pragma Import (C, LLVMCreateBuilder, "Ada_LLVMCreateBuilder");
+   pragma Import (C, LLVMPositionBuilder, "Ada_LLVMPositionBuilder");
+   pragma Import
+     (C,
+      LLVMPositionBuilderBefore,
+      "Ada_LLVMPositionBuilderBefore");
+   pragma Import
+     (C,
+      LLVMPositionBuilderAtEnd,
+      "Ada_LLVMPositionBuilderAtEnd");
+   pragma Import (C, LLVMGetInsertBlock, "Ada_LLVMGetInsertBlock");
+   pragma Import
+     (C,
+      LLVMClearInsertionPosition,
+      "Ada_LLVMClearInsertionPosition");
+   pragma Import (C, LLVMInsertIntoBuilder, "Ada_LLVMInsertIntoBuilder");
+   pragma Import (C, LLVMDisposeBuilder, "Ada_LLVMDisposeBuilder");
+   pragma Import (C, LLVMBuildRetVoid, "Ada_LLVMBuildRetVoid");
+   pragma Import (C, LLVMBuildRet, "Ada_LLVMBuildRet");
+   pragma Import (C, LLVMBuildBr, "Ada_LLVMBuildBr");
+   pragma Import (C, LLVMBuildCondBr, "Ada_LLVMBuildCondBr");
+   pragma Import (C, LLVMBuildSwitch, "Ada_LLVMBuildSwitch");
+   pragma Import (C, LLVMBuildInvoke, "Ada_LLVMBuildInvoke");
+   pragma Import (C, LLVMBuildUnwind, "Ada_LLVMBuildUnwind");
+   pragma Import (C, LLVMBuildUnreachable, "Ada_LLVMBuildUnreachable");
+   pragma Import (C, LLVMAddCase, "Ada_LLVMAddCase");
+   pragma Import (C, LLVMBuildAdd, "Ada_LLVMBuildAdd");
+   pragma Import (C, LLVMBuildSub, "Ada_LLVMBuildSub");
+   pragma Import (C, LLVMBuildMul, "Ada_LLVMBuildMul");
+   pragma Import (C, LLVMBuildUDiv, "Ada_LLVMBuildUDiv");
+   pragma Import (C, LLVMBuildSDiv, "Ada_LLVMBuildSDiv");
+   pragma Import (C, LLVMBuildFDiv, "Ada_LLVMBuildFDiv");
+   pragma Import (C, LLVMBuildURem, "Ada_LLVMBuildURem");
+   pragma Import (C, LLVMBuildSRem, "Ada_LLVMBuildSRem");
+   pragma Import (C, LLVMBuildFRem, "Ada_LLVMBuildFRem");
+   pragma Import (C, LLVMBuildShl, "Ada_LLVMBuildShl");
+   pragma Import (C, LLVMBuildLShr, "Ada_LLVMBuildLShr");
+   pragma Import (C, LLVMBuildAShr, "Ada_LLVMBuildAShr");
+   pragma Import (C, LLVMBuildAnd, "Ada_LLVMBuildAnd");
+   pragma Import (C, LLVMBuildOr, "Ada_LLVMBuildOr");
+   pragma Import (C, LLVMBuildXor, "Ada_LLVMBuildXor");
+   pragma Import (C, LLVMBuildNeg, "Ada_LLVMBuildNeg");
+   pragma Import (C, LLVMBuildNot, "Ada_LLVMBuildNot");
+   pragma Import (C, LLVMBuildMalloc, "Ada_LLVMBuildMalloc");
+   pragma Import (C, LLVMBuildArrayMalloc, "Ada_LLVMBuildArrayMalloc");
+   pragma Import (C, LLVMBuildAlloca, "Ada_LLVMBuildAlloca");
+   pragma Import (C, LLVMBuildArrayAlloca, "Ada_LLVMBuildArrayAlloca");
+   pragma Import (C, LLVMBuildFree, "Ada_LLVMBuildFree");
+   pragma Import (C, LLVMBuildLoad, "Ada_LLVMBuildLoad");
+   pragma Import (C, LLVMBuildStore, "Ada_LLVMBuildStore");
+   pragma Import (C, LLVMBuildGEP, "Ada_LLVMBuildGEP");
+   pragma Import (C, LLVMBuildTrunc, "Ada_LLVMBuildTrunc");
+   pragma Import (C, LLVMBuildZExt, "Ada_LLVMBuildZExt");
+   pragma Import (C, LLVMBuildSExt, "Ada_LLVMBuildSExt");
+   pragma Import (C, LLVMBuildFPToUI, "Ada_LLVMBuildFPToUI");
+   pragma Import (C, LLVMBuildFPToSI, "Ada_LLVMBuildFPToSI");
+   pragma Import (C, LLVMBuildUIToFP, "Ada_LLVMBuildUIToFP");
+   pragma Import (C, LLVMBuildSIToFP, "Ada_LLVMBuildSIToFP");
+   pragma Import (C, LLVMBuildFPTrunc, "Ada_LLVMBuildFPTrunc");
+   pragma Import (C, LLVMBuildFPExt, "Ada_LLVMBuildFPExt");
+   pragma Import (C, LLVMBuildPtrToInt, "Ada_LLVMBuildPtrToInt");
+   pragma Import (C, LLVMBuildIntToPtr, "Ada_LLVMBuildIntToPtr");
+   pragma Import (C, LLVMBuildBitCast, "Ada_LLVMBuildBitCast");
+   pragma Import (C, LLVMBuildICmp, "Ada_LLVMBuildICmp");
+   pragma Import (C, LLVMBuildFCmp, "Ada_LLVMBuildFCmp");
+   pragma Import (C, LLVMBuildPhi, "Ada_LLVMBuildPhi");
+   pragma Import (C, LLVMBuildCall, "Ada_LLVMBuildCall");
+   pragma Import (C, LLVMBuildSelect, "Ada_LLVMBuildSelect");
+   pragma Import (C, LLVMBuildVAArg, "Ada_LLVMBuildVAArg");
+   pragma Import (C, LLVMBuildExtractElement, "Ada_LLVMBuildExtractElement");
+   pragma Import (C, LLVMBuildInsertElement, "Ada_LLVMBuildInsertElement");
+   pragma Import (C, LLVMBuildShuffleVector, "Ada_LLVMBuildShuffleVector");
+   pragma Import (C, LLVMBuildExtractValue, "Ada_LLVMBuildExtractValue");
+   pragma Import (C, LLVMBuildInsertValue, "Ada_LLVMBuildInsertValue");
+   pragma Import
+     (C,
+      LLVMCreateModuleProviderForExistingModule,
+      "Ada_LLVMCreateModuleProviderForExistingModule");
+   pragma Import
+     (C,
+      LLVMDisposeModuleProvider,
+      "Ada_LLVMDisposeModuleProvider");
+   pragma Import
+     (C,
+      LLVMCreateMemoryBufferWithContentsOfFile,
+      "Ada_LLVMCreateMemoryBufferWithContentsOfFile");
+   pragma Import
+     (C,
+      LLVMCreateMemoryBufferWithSTDIN,
+      "Ada_LLVMCreateMemoryBufferWithSTDIN");
+   pragma Import (C, LLVMDisposeMemoryBuffer, "Ada_LLVMDisposeMemoryBuffer");
+   pragma Import (C, LLVMCreatePassManager, "Ada_LLVMCreatePassManager");
+   pragma Import
+     (C,
+      LLVMCreateFunctionPassManager,
+      "Ada_LLVMCreateFunctionPassManager");
+   pragma Import (C, LLVMRunPassManager, "Ada_LLVMRunPassManager");
+   pragma Import
+     (C,
+      LLVMInitializeFunctionPassManager,
+      "Ada_LLVMInitializeFunctionPassManager");
+   pragma Import
+     (C,
+      LLVMRunFunctionPassManager,
+      "Ada_LLVMRunFunctionPassManager");
+   pragma Import
+     (C,
+      LLVMFinalizeFunctionPassManager,
+      "Ada_LLVMFinalizeFunctionPassManager");
+   pragma Import (C, LLVMDisposePassManager, "Ada_LLVMDisposePassManager");
+
+end llvm.Binding;

Added: llvm/trunk/bindings/ada/llvm/llvm.ads
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ada/llvm/llvm.ads?rev=79295&view=auto

==============================================================================
--- llvm/trunk/bindings/ada/llvm/llvm.ads (added)
+++ llvm/trunk/bindings/ada/llvm/llvm.ads Mon Aug 17 19:24:36 2009
@@ -0,0 +1,493 @@
+-- This file is generated by SWIG. Do *not* modify by hand.
+--
+
+with Interfaces.C.Extensions;
+
+
+package llvm is
+
+   -- LLVMCtxt
+   --
+   type LLVMCtxt is new Interfaces.C.Extensions.opaque_structure_def;
+
+   type LLVMCtxt_array is
+     array (Interfaces.C.size_t range <>) of aliased llvm.LLVMCtxt;
+
+   type LLVMCtxt_view is access all llvm.LLVMCtxt;
+
+   -- LLVMContextRef
+   --
+   type LLVMContextRef is access all llvm.LLVMCtxt;
+
+   type LLVMContextRef_array is
+     array (Interfaces.C.size_t range <>) of aliased llvm.LLVMContextRef;
+
+   type LLVMContextRef_view is access all llvm.LLVMContextRef;
+
+   -- LLVMOpaqueModule
+   --
+   type LLVMOpaqueModule is new Interfaces.C.Extensions.opaque_structure_def;
+
+   type LLVMOpaqueModule_array is
+     array (Interfaces.C.size_t range <>) of aliased llvm.LLVMOpaqueModule;
+
+   type LLVMOpaqueModule_view is access all llvm.LLVMOpaqueModule;
+
+   -- LLVMModuleRef
+   --
+   type LLVMModuleRef is access all llvm.LLVMOpaqueModule;
+
+   type LLVMModuleRef_array is
+     array (Interfaces.C.size_t range <>) of aliased llvm.LLVMModuleRef;
+
+   type LLVMModuleRef_view is access all llvm.LLVMModuleRef;
+
+   -- LLVMOpaqueType
+   --
+   type LLVMOpaqueType is new Interfaces.C.Extensions.opaque_structure_def;
+
+   type LLVMOpaqueType_array is
+     array (Interfaces.C.size_t range <>) of aliased llvm.LLVMOpaqueType;
+
+   type LLVMOpaqueType_view is access all llvm.LLVMOpaqueType;
+
+   -- LLVMTypeRef
+   --
+   type LLVMTypeRef is access all llvm.LLVMOpaqueType;
+
+   type LLVMTypeRef_array is
+     array (Interfaces.C.size_t range <>) of aliased llvm.LLVMTypeRef;
+
+   type LLVMTypeRef_view is access all llvm.LLVMTypeRef;
+
+   -- LLVMOpaqueTypeHandle
+   --
+   type LLVMOpaqueTypeHandle is new
+     Interfaces.C.Extensions.opaque_structure_def;
+
+   type LLVMOpaqueTypeHandle_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased llvm.LLVMOpaqueTypeHandle;
+
+   type LLVMOpaqueTypeHandle_view is access all llvm.LLVMOpaqueTypeHandle;
+
+   -- LLVMTypeHandleRef
+   --
+   type LLVMTypeHandleRef is access all llvm.LLVMOpaqueTypeHandle;
+
+   type LLVMTypeHandleRef_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased llvm.LLVMTypeHandleRef;
+
+   type LLVMTypeHandleRef_view is access all llvm.LLVMTypeHandleRef;
+
+   -- LLVMOpaqueValue
+   --
+   type LLVMOpaqueValue is new Interfaces.C.Extensions.opaque_structure_def;
+
+   type LLVMOpaqueValue_array is
+     array (Interfaces.C.size_t range <>) of aliased llvm.LLVMOpaqueValue;
+
+   type LLVMOpaqueValue_view is access all llvm.LLVMOpaqueValue;
+
+   -- LLVMValueRef
+   --
+   type LLVMValueRef is access all llvm.LLVMOpaqueValue;
+
+   type LLVMValueRef_array is
+     array (Interfaces.C.size_t range <>) of aliased llvm.LLVMValueRef;
+
+   type LLVMValueRef_view is access all llvm.LLVMValueRef;
+
+   -- LLVMOpaqueBasicBlock
+   --
+   type LLVMOpaqueBasicBlock is new
+     Interfaces.C.Extensions.opaque_structure_def;
+
+   type LLVMOpaqueBasicBlock_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased llvm.LLVMOpaqueBasicBlock;
+
+   type LLVMOpaqueBasicBlock_view is access all llvm.LLVMOpaqueBasicBlock;
+
+   -- LLVMBasicBlockRef
+   --
+   type LLVMBasicBlockRef is access all llvm.LLVMOpaqueBasicBlock;
+
+   type LLVMBasicBlockRef_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased llvm.LLVMBasicBlockRef;
+
+   type LLVMBasicBlockRef_view is access all llvm.LLVMBasicBlockRef;
+
+   -- LLVMOpaqueBuilder
+   --
+   type LLVMOpaqueBuilder is new Interfaces.C.Extensions.opaque_structure_def;
+
+   type LLVMOpaqueBuilder_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased llvm.LLVMOpaqueBuilder;
+
+   type LLVMOpaqueBuilder_view is access all llvm.LLVMOpaqueBuilder;
+
+   -- LLVMBuilderRef
+   --
+   type LLVMBuilderRef is access all llvm.LLVMOpaqueBuilder;
+
+   type LLVMBuilderRef_array is
+     array (Interfaces.C.size_t range <>) of aliased llvm.LLVMBuilderRef;
+
+   type LLVMBuilderRef_view is access all llvm.LLVMBuilderRef;
+
+   -- LLVMOpaqueModuleProvider
+   --
+   type LLVMOpaqueModuleProvider is new
+     Interfaces.C.Extensions.opaque_structure_def;
+
+   type LLVMOpaqueModuleProvider_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased llvm.LLVMOpaqueModuleProvider;
+
+   type LLVMOpaqueModuleProvider_view is access all
+     llvm.LLVMOpaqueModuleProvider;
+
+   -- LLVMModuleProviderRef
+   --
+   type LLVMModuleProviderRef is access all llvm.LLVMOpaqueModuleProvider;
+
+   type LLVMModuleProviderRef_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased llvm.LLVMModuleProviderRef;
+
+   type LLVMModuleProviderRef_view is access all llvm.LLVMModuleProviderRef;
+
+   -- LLVMOpaqueMemoryBuffer
+   --
+   type LLVMOpaqueMemoryBuffer is new
+     Interfaces.C.Extensions.opaque_structure_def;
+
+   type LLVMOpaqueMemoryBuffer_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased llvm.LLVMOpaqueMemoryBuffer;
+
+   type LLVMOpaqueMemoryBuffer_view is access all llvm.LLVMOpaqueMemoryBuffer;
+
+   -- LLVMMemoryBufferRef
+   --
+   type LLVMMemoryBufferRef is access all llvm.LLVMOpaqueMemoryBuffer;
+
+   type LLVMMemoryBufferRef_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased llvm.LLVMMemoryBufferRef;
+
+   type LLVMMemoryBufferRef_view is access all llvm.LLVMMemoryBufferRef;
+
+   -- LLVMOpaquePassManager
+   --
+   type LLVMOpaquePassManager is new
+     Interfaces.C.Extensions.opaque_structure_def;
+
+   type LLVMOpaquePassManager_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased llvm.LLVMOpaquePassManager;
+
+   type LLVMOpaquePassManager_view is access all llvm.LLVMOpaquePassManager;
+
+   -- LLVMPassManagerRef
+   --
+   type LLVMPassManagerRef is access all llvm.LLVMOpaquePassManager;
+
+   type LLVMPassManagerRef_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased llvm.LLVMPassManagerRef;
+
+   type LLVMPassManagerRef_view is access all llvm.LLVMPassManagerRef;
+
+   -- LLVMAttribute
+   --
+   type LLVMAttribute is (
+      LLVMZExtAttribute,
+      LLVMSExtAttribute,
+      LLVMNoReturnAttribute,
+      LLVMInRegAttribute,
+      LLVMStructRetAttribute,
+      LLVMNoUnwindAttribute,
+      LLVMNoAliasAttribute,
+      LLVMByValAttribute,
+      LLVMNestAttribute,
+      LLVMReadNoneAttribute,
+      LLVMReadOnlyAttribute,
+      LLVMNoInlineAttribute,
+      LLVMAlwaysInlineAttribute,
+      LLVMOptimizeForSizeAttribute,
+      LLVMStackProtectAttribute,
+      LLVMStackProtectReqAttribute,
+      LLVMNoCaptureAttribute,
+      LLVMNoRedZoneAttribute,
+      LLVMNoImplicitFloatAttribute,
+      LLVMNakedAttribute);
+
+   for LLVMAttribute use
+     (LLVMZExtAttribute            => 1,
+      LLVMSExtAttribute            => 2,
+      LLVMNoReturnAttribute        => 4,
+      LLVMInRegAttribute           => 8,
+      LLVMStructRetAttribute       => 16,
+      LLVMNoUnwindAttribute        => 32,
+      LLVMNoAliasAttribute         => 64,
+      LLVMByValAttribute           => 128,
+      LLVMNestAttribute            => 256,
+      LLVMReadNoneAttribute        => 512,
+      LLVMReadOnlyAttribute        => 1024,
+      LLVMNoInlineAttribute        => 2048,
+      LLVMAlwaysInlineAttribute    => 4096,
+      LLVMOptimizeForSizeAttribute => 8192,
+      LLVMStackProtectAttribute    => 16384,
+      LLVMStackProtectReqAttribute => 32768,
+      LLVMNoCaptureAttribute       => 2097152,
+      LLVMNoRedZoneAttribute       => 4194304,
+      LLVMNoImplicitFloatAttribute => 8388608,
+      LLVMNakedAttribute           => 16777216);
+
+   pragma Convention (C, LLVMAttribute);
+
+   type LLVMAttribute_array is
+     array (Interfaces.C.size_t range <>) of aliased llvm.LLVMAttribute;
+
+   type LLVMAttribute_view is access all llvm.LLVMAttribute;
+
+   -- LLVMTypeKind
+   --
+   type LLVMTypeKind is (
+      LLVMVoidTypeKind,
+      LLVMFloatTypeKind,
+      LLVMDoubleTypeKind,
+      LLVMX86_FP80TypeKind,
+      LLVMFP128TypeKind,
+      LLVMPPC_FP128TypeKind,
+      LLVMLabelTypeKind,
+      LLVMIntegerTypeKind,
+      LLVMFunctionTypeKind,
+      LLVMStructTypeKind,
+      LLVMArrayTypeKind,
+      LLVMPointerTypeKind,
+      LLVMOpaqueTypeKind,
+      LLVMVectorTypeKind,
+      LLVMMetadataTypeKind);
+
+   for LLVMTypeKind use
+     (LLVMVoidTypeKind      => 0,
+      LLVMFloatTypeKind     => 1,
+      LLVMDoubleTypeKind    => 2,
+      LLVMX86_FP80TypeKind  => 3,
+      LLVMFP128TypeKind     => 4,
+      LLVMPPC_FP128TypeKind => 5,
+      LLVMLabelTypeKind     => 6,
+      LLVMIntegerTypeKind   => 7,
+      LLVMFunctionTypeKind  => 8,
+      LLVMStructTypeKind    => 9,
+      LLVMArrayTypeKind     => 10,
+      LLVMPointerTypeKind   => 11,
+      LLVMOpaqueTypeKind    => 12,
+      LLVMVectorTypeKind    => 13,
+      LLVMMetadataTypeKind  => 14);
+
+   pragma Convention (C, LLVMTypeKind);
+
+   type LLVMTypeKind_array is
+     array (Interfaces.C.size_t range <>) of aliased llvm.LLVMTypeKind;
+
+   type LLVMTypeKind_view is access all llvm.LLVMTypeKind;
+
+   -- LLVMLinkage
+   --
+   type LLVMLinkage is (
+      LLVMExternalLinkage,
+      LLVMAvailableExternallyLinkage,
+      LLVMLinkOnceAnyLinkage,
+      LLVMLinkOnceODRLinkage,
+      LLVMWeakAnyLinkage,
+      LLVMWeakODRLinkage,
+      LLVMAppendingLinkage,
+      LLVMInternalLinkage,
+      LLVMPrivateLinkage,
+      LLVMDLLImportLinkage,
+      LLVMDLLExportLinkage,
+      LLVMExternalWeakLinkage,
+      LLVMGhostLinkage,
+      LLVMCommonLinkage,
+      LLVMLinkerPrivateLinkage);
+
+   for LLVMLinkage use
+     (LLVMExternalLinkage            => 0,
+      LLVMAvailableExternallyLinkage => 1,
+      LLVMLinkOnceAnyLinkage         => 2,
+      LLVMLinkOnceODRLinkage         => 3,
+      LLVMWeakAnyLinkage             => 4,
+      LLVMWeakODRLinkage             => 5,
+      LLVMAppendingLinkage           => 6,
+      LLVMInternalLinkage            => 7,
+      LLVMPrivateLinkage             => 8,
+      LLVMDLLImportLinkage           => 9,
+      LLVMDLLExportLinkage           => 10,
+      LLVMExternalWeakLinkage        => 11,
+      LLVMGhostLinkage               => 12,
+      LLVMCommonLinkage              => 13,
+      LLVMLinkerPrivateLinkage       => 14);
+
+   pragma Convention (C, LLVMLinkage);
+
+   type LLVMLinkage_array is
+     array (Interfaces.C.size_t range <>) of aliased llvm.LLVMLinkage;
+
+   type LLVMLinkage_view is access all llvm.LLVMLinkage;
+
+   -- LLVMVisibility
+   --
+   type LLVMVisibility is (
+      LLVMDefaultVisibility,
+      LLVMHiddenVisibility,
+      LLVMProtectedVisibility);
+
+   for LLVMVisibility use
+     (LLVMDefaultVisibility   => 0,
+      LLVMHiddenVisibility    => 1,
+      LLVMProtectedVisibility => 2);
+
+   pragma Convention (C, LLVMVisibility);
+
+   type LLVMVisibility_array is
+     array (Interfaces.C.size_t range <>) of aliased llvm.LLVMVisibility;
+
+   type LLVMVisibility_view is access all llvm.LLVMVisibility;
+
+   -- LLVMCallConv
+   --
+   type LLVMCallConv is (
+      LLVMCCallConv,
+      LLVMFastCallConv,
+      LLVMColdCallConv,
+      LLVMX86StdcallCallConv,
+      LLVMX86FastcallCallConv);
+
+   for LLVMCallConv use
+     (LLVMCCallConv           => 0,
+      LLVMFastCallConv        => 8,
+      LLVMColdCallConv        => 9,
+      LLVMX86StdcallCallConv  => 64,
+      LLVMX86FastcallCallConv => 65);
+
+   pragma Convention (C, LLVMCallConv);
+
+   type LLVMCallConv_array is
+     array (Interfaces.C.size_t range <>) of aliased llvm.LLVMCallConv;
+
+   type LLVMCallConv_view is access all llvm.LLVMCallConv;
+
+   -- LLVMIntPredicate
+   --
+   type LLVMIntPredicate is (
+      LLVMIntEQ,
+      LLVMIntNE,
+      LLVMIntUGT,
+      LLVMIntUGE,
+      LLVMIntULT,
+      LLVMIntULE,
+      LLVMIntSGT,
+      LLVMIntSGE,
+      LLVMIntSLT,
+      LLVMIntSLE);
+
+   for LLVMIntPredicate use
+     (LLVMIntEQ  => 32,
+      LLVMIntNE  => 33,
+      LLVMIntUGT => 34,
+      LLVMIntUGE => 35,
+      LLVMIntULT => 36,
+      LLVMIntULE => 37,
+      LLVMIntSGT => 38,
+      LLVMIntSGE => 39,
+      LLVMIntSLT => 40,
+      LLVMIntSLE => 41);
+
+   pragma Convention (C, LLVMIntPredicate);
+
+   type LLVMIntPredicate_array is
+     array (Interfaces.C.size_t range <>) of aliased llvm.LLVMIntPredicate;
+
+   type LLVMIntPredicate_view is access all llvm.LLVMIntPredicate;
+
+   -- LLVMRealPredicate
+   --
+   type LLVMRealPredicate is (
+      LLVMRealPredicateFalse,
+      LLVMRealOEQ,
+      LLVMRealOGT,
+      LLVMRealOGE,
+      LLVMRealOLT,
+      LLVMRealOLE,
+      LLVMRealONE,
+      LLVMRealORD,
+      LLVMRealUNO,
+      LLVMRealUEQ,
+      LLVMRealUGT,
+      LLVMRealUGE,
+      LLVMRealULT,
+      LLVMRealULE,
+      LLVMRealUNE,
+      LLVMRealPredicateTrue);
+
+   for LLVMRealPredicate use
+     (LLVMRealPredicateFalse => 0,
+      LLVMRealOEQ            => 1,
+      LLVMRealOGT            => 2,
+      LLVMRealOGE            => 3,
+      LLVMRealOLT            => 4,
+      LLVMRealOLE            => 5,
+      LLVMRealONE            => 6,
+      LLVMRealORD            => 7,
+      LLVMRealUNO            => 8,
+      LLVMRealUEQ            => 9,
+      LLVMRealUGT            => 10,
+      LLVMRealUGE            => 11,
+      LLVMRealULT            => 12,
+      LLVMRealULE            => 13,
+      LLVMRealUNE            => 14,
+      LLVMRealPredicateTrue  => 15);
+
+   pragma Convention (C, LLVMRealPredicate);
+
+   type LLVMRealPredicate_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased llvm.LLVMRealPredicate;
+
+   type LLVMRealPredicate_view is access all llvm.LLVMRealPredicate;
+
+   -- ModuleProvider
+   --
+   type ModuleProvider is new Interfaces.C.Extensions.incomplete_class_def;
+
+   type ModuleProvider_array is
+     array (Interfaces.C.size_t range <>) of aliased llvm.ModuleProvider;
+
+   type ModuleProvider_view is access all llvm.ModuleProvider;
+
+   -- MemoryBuffer
+   --
+   type MemoryBuffer is new Interfaces.C.Extensions.incomplete_class_def;
+
+   type MemoryBuffer_array is
+     array (Interfaces.C.size_t range <>) of aliased llvm.MemoryBuffer;
+
+   type MemoryBuffer_view is access all llvm.MemoryBuffer;
+
+   -- PassManagerBase
+   --
+   type PassManagerBase is new Interfaces.C.Extensions.incomplete_class_def;
+
+   type PassManagerBase_array is
+     array (Interfaces.C.size_t range <>) of aliased llvm.PassManagerBase;
+
+   type PassManagerBase_view is access all llvm.PassManagerBase;
+
+end llvm;

Added: llvm/trunk/bindings/ada/llvm/llvm_link_time_optimizer-binding.ads
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ada/llvm/llvm_link_time_optimizer-binding.ads?rev=79295&view=auto

==============================================================================
--- llvm/trunk/bindings/ada/llvm/llvm_link_time_optimizer-binding.ads (added)
+++ llvm/trunk/bindings/ada/llvm/llvm_link_time_optimizer-binding.ads Mon Aug 17 19:24:36 2009
@@ -0,0 +1,207 @@
+-- This file is generated by SWIG. Do *not* modify by hand.
+--
+
+with Interfaces.C.Strings;
+
+
+package LLVM_link_time_Optimizer.Binding is
+
+   LTO_H           : constant := 1;
+   LTO_API_VERSION : constant := 3;
+
+   function lto_get_version return  Interfaces.C.Strings.chars_ptr;
+
+   function lto_get_error_message return  Interfaces.C.Strings.chars_ptr;
+
+   function lto_module_is_object_file
+     (path : in Interfaces.C.Strings.chars_ptr)
+      return Interfaces.C.Extensions.bool;
+
+   function lto_module_is_object_file_for_target
+     (path                 : in Interfaces.C.Strings.chars_ptr;
+      target_triple_prefix : in Interfaces.C.Strings.chars_ptr)
+      return                 Interfaces.C.Extensions.bool;
+
+   function lto_module_is_object_file_in_memory
+     (mem    : access Interfaces.C.Extensions.void;
+      length : in Interfaces.C.size_t)
+      return   Interfaces.C.Extensions.bool;
+
+   function lto_module_is_object_file_in_memory_for_target
+     (mem                  : access Interfaces.C.Extensions.void;
+      length               : in Interfaces.C.size_t;
+      target_triple_prefix : in Interfaces.C.Strings.chars_ptr)
+      return                 Interfaces.C.Extensions.bool;
+
+   function lto_module_create
+     (path : in Interfaces.C.Strings.chars_ptr)
+      return LLVM_link_time_Optimizer.lto_module_t;
+
+   function lto_module_create_from_memory
+     (mem    : access Interfaces.C.Extensions.void;
+      length : in Interfaces.C.size_t)
+      return   LLVM_link_time_Optimizer.lto_module_t;
+
+   procedure lto_module_dispose
+     (the_mod : in LLVM_link_time_Optimizer.lto_module_t);
+
+   function lto_module_get_target_triple
+     (the_mod : in LLVM_link_time_Optimizer.lto_module_t)
+      return    Interfaces.C.Strings.chars_ptr;
+
+   function lto_module_get_num_symbols
+     (the_mod : in LLVM_link_time_Optimizer.lto_module_t)
+      return    Interfaces.C.unsigned;
+
+   function lto_module_get_symbol_name
+     (the_mod : in LLVM_link_time_Optimizer.lto_module_t;
+      index   : in Interfaces.C.unsigned)
+      return    Interfaces.C.Strings.chars_ptr;
+
+   function lto_module_get_symbol_attribute
+     (the_mod : in LLVM_link_time_Optimizer.lto_module_t;
+      index   : in Interfaces.C.unsigned)
+      return    LLVM_link_time_Optimizer.lto_symbol_attributes;
+
+   function lto_codegen_create return  LLVM_link_time_Optimizer.lto_code_gen_t;
+
+   procedure lto_codegen_dispose
+     (arg_1 : in LLVM_link_time_Optimizer.lto_code_gen_t);
+
+   function lto_codegen_add_module
+     (cg      : in LLVM_link_time_Optimizer.lto_code_gen_t;
+      the_mod : in LLVM_link_time_Optimizer.lto_module_t)
+      return    Interfaces.C.Extensions.bool;
+
+   function lto_codegen_set_debug_model
+     (cg    : in LLVM_link_time_Optimizer.lto_code_gen_t;
+      arg_1 : in LLVM_link_time_Optimizer.lto_debug_model)
+      return  Interfaces.C.Extensions.bool;
+
+   function lto_codegen_set_pic_model
+     (cg    : in LLVM_link_time_Optimizer.lto_code_gen_t;
+      arg_1 : in LLVM_link_time_Optimizer.lto_codegen_model)
+      return  Interfaces.C.Extensions.bool;
+
+   procedure lto_codegen_set_gcc_path
+     (cg   : in LLVM_link_time_Optimizer.lto_code_gen_t;
+      path : in Interfaces.C.Strings.chars_ptr);
+
+   procedure lto_codegen_set_assembler_path
+     (cg   : in LLVM_link_time_Optimizer.lto_code_gen_t;
+      path : in Interfaces.C.Strings.chars_ptr);
+
+   procedure lto_codegen_add_must_preserve_symbol
+     (cg     : in LLVM_link_time_Optimizer.lto_code_gen_t;
+      symbol : in Interfaces.C.Strings.chars_ptr);
+
+   function lto_codegen_write_merged_modules
+     (cg   : in LLVM_link_time_Optimizer.lto_code_gen_t;
+      path : in Interfaces.C.Strings.chars_ptr)
+      return Interfaces.C.Extensions.bool;
+
+   function lto_codegen_compile
+     (cg     : in LLVM_link_time_Optimizer.lto_code_gen_t;
+      length : access Interfaces.C.size_t)
+      return   access Interfaces.C.Extensions.void;
+
+   procedure lto_codegen_debug_options
+     (cg    : in LLVM_link_time_Optimizer.lto_code_gen_t;
+      arg_1 : in Interfaces.C.Strings.chars_ptr);
+
+   function llvm_create_optimizer return
+     LLVM_link_time_Optimizer.llvm_lto_t;
+
+   procedure llvm_destroy_optimizer
+     (lto : in LLVM_link_time_Optimizer.llvm_lto_t);
+
+   function llvm_read_object_file
+     (lto            : in LLVM_link_time_Optimizer.llvm_lto_t;
+      input_filename : in Interfaces.C.Strings.chars_ptr)
+      return           LLVM_link_time_Optimizer.llvm_lto_status_t;
+
+   function llvm_optimize_modules
+     (lto             : in LLVM_link_time_Optimizer.llvm_lto_t;
+      output_filename : in Interfaces.C.Strings.chars_ptr)
+      return            LLVM_link_time_Optimizer.llvm_lto_status_t;
+
+private
+
+   pragma Import (C, lto_get_version, "Ada_lto_get_version");
+   pragma Import (C, lto_get_error_message, "Ada_lto_get_error_message");
+   pragma Import
+     (C,
+      lto_module_is_object_file,
+      "Ada_lto_module_is_object_file");
+   pragma Import
+     (C,
+      lto_module_is_object_file_for_target,
+      "Ada_lto_module_is_object_file_for_target");
+   pragma Import
+     (C,
+      lto_module_is_object_file_in_memory,
+      "Ada_lto_module_is_object_file_in_memory");
+   pragma Import
+     (C,
+      lto_module_is_object_file_in_memory_for_target,
+      "Ada_lto_module_is_object_file_in_memory_for_target");
+   pragma Import (C, lto_module_create, "Ada_lto_module_create");
+   pragma Import
+     (C,
+      lto_module_create_from_memory,
+      "Ada_lto_module_create_from_memory");
+   pragma Import (C, lto_module_dispose, "Ada_lto_module_dispose");
+   pragma Import
+     (C,
+      lto_module_get_target_triple,
+      "Ada_lto_module_get_target_triple");
+   pragma Import
+     (C,
+      lto_module_get_num_symbols,
+      "Ada_lto_module_get_num_symbols");
+   pragma Import
+     (C,
+      lto_module_get_symbol_name,
+      "Ada_lto_module_get_symbol_name");
+   pragma Import
+     (C,
+      lto_module_get_symbol_attribute,
+      "Ada_lto_module_get_symbol_attribute");
+   pragma Import (C, lto_codegen_create, "Ada_lto_codegen_create");
+   pragma Import (C, lto_codegen_dispose, "Ada_lto_codegen_dispose");
+   pragma Import (C, lto_codegen_add_module, "Ada_lto_codegen_add_module");
+   pragma Import
+     (C,
+      lto_codegen_set_debug_model,
+      "Ada_lto_codegen_set_debug_model");
+   pragma Import
+     (C,
+      lto_codegen_set_pic_model,
+      "Ada_lto_codegen_set_pic_model");
+   pragma Import
+     (C,
+      lto_codegen_set_gcc_path,
+      "Ada_lto_codegen_set_gcc_path");
+   pragma Import
+     (C,
+      lto_codegen_set_assembler_path,
+      "Ada_lto_codegen_set_assembler_path");
+   pragma Import
+     (C,
+      lto_codegen_add_must_preserve_symbol,
+      "Ada_lto_codegen_add_must_preserve_symbol");
+   pragma Import
+     (C,
+      lto_codegen_write_merged_modules,
+      "Ada_lto_codegen_write_merged_modules");
+   pragma Import (C, lto_codegen_compile, "Ada_lto_codegen_compile");
+   pragma Import
+     (C,
+      lto_codegen_debug_options,
+      "Ada_lto_codegen_debug_options");
+   pragma Import (C, llvm_create_optimizer, "Ada_llvm_create_optimizer");
+   pragma Import (C, llvm_destroy_optimizer, "Ada_llvm_destroy_optimizer");
+   pragma Import (C, llvm_read_object_file, "Ada_llvm_read_object_file");
+   pragma Import (C, llvm_optimize_modules, "Ada_llvm_optimize_modules");
+
+end LLVM_link_time_Optimizer.Binding;

Added: llvm/trunk/bindings/ada/llvm/llvm_link_time_optimizer.ads
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ada/llvm/llvm_link_time_optimizer.ads?rev=79295&view=auto

==============================================================================
--- llvm/trunk/bindings/ada/llvm/llvm_link_time_optimizer.ads (added)
+++ llvm/trunk/bindings/ada/llvm/llvm_link_time_optimizer.ads Mon Aug 17 19:24:36 2009
@@ -0,0 +1,184 @@
+-- This file is generated by SWIG. Do *not* modify by hand.
+--
+
+with Interfaces.C.Extensions;
+
+
+package LLVM_link_time_Optimizer is
+
+   -- lto_symbol_attributes
+   --
+   type lto_symbol_attributes is (
+      LTO_SYMBOL_ALIGNMENT_MASK,
+      LTO_SYMBOL_PERMISSIONS_RODATA,
+      LTO_SYMBOL_PERMISSIONS_CODE,
+      LTO_SYMBOL_PERMISSIONS_DATA,
+      LTO_SYMBOL_PERMISSIONS_MASK,
+      LTO_SYMBOL_DEFINITION_REGULAR,
+      LTO_SYMBOL_DEFINITION_TENTATIVE,
+      LTO_SYMBOL_DEFINITION_WEAK,
+      LTO_SYMBOL_DEFINITION_UNDEFINED,
+      LTO_SYMBOL_DEFINITION_WEAKUNDEF,
+      LTO_SYMBOL_DEFINITION_MASK,
+      LTO_SYMBOL_SCOPE_INTERNAL,
+      LTO_SYMBOL_SCOPE_HIDDEN,
+      LTO_SYMBOL_SCOPE_DEFAULT,
+      LTO_SYMBOL_SCOPE_PROTECTED,
+      LTO_SYMBOL_SCOPE_MASK);
+
+   for lto_symbol_attributes use
+     (LTO_SYMBOL_ALIGNMENT_MASK       => 31,
+      LTO_SYMBOL_PERMISSIONS_RODATA   => 128,
+      LTO_SYMBOL_PERMISSIONS_CODE     => 160,
+      LTO_SYMBOL_PERMISSIONS_DATA     => 192,
+      LTO_SYMBOL_PERMISSIONS_MASK     => 224,
+      LTO_SYMBOL_DEFINITION_REGULAR   => 256,
+      LTO_SYMBOL_DEFINITION_TENTATIVE => 512,
+      LTO_SYMBOL_DEFINITION_WEAK      => 768,
+      LTO_SYMBOL_DEFINITION_UNDEFINED => 1024,
+      LTO_SYMBOL_DEFINITION_WEAKUNDEF => 1280,
+      LTO_SYMBOL_DEFINITION_MASK      => 1792,
+      LTO_SYMBOL_SCOPE_INTERNAL       => 2048,
+      LTO_SYMBOL_SCOPE_HIDDEN         => 4096,
+      LTO_SYMBOL_SCOPE_DEFAULT        => 6144,
+      LTO_SYMBOL_SCOPE_PROTECTED      => 8192,
+      LTO_SYMBOL_SCOPE_MASK           => 14336);
+
+   pragma Convention (C, lto_symbol_attributes);
+
+   type lto_symbol_attributes_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased LLVM_link_time_Optimizer.lto_symbol_attributes;
+
+   type lto_symbol_attributes_view is access all
+     LLVM_link_time_Optimizer.lto_symbol_attributes;
+
+   -- lto_debug_model
+   --
+   type lto_debug_model is (LTO_DEBUG_MODEL_NONE, LTO_DEBUG_MODEL_DWARF);
+
+   for lto_debug_model use
+     (LTO_DEBUG_MODEL_NONE  => 0,
+      LTO_DEBUG_MODEL_DWARF => 1);
+
+   pragma Convention (C, lto_debug_model);
+
+   type lto_debug_model_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased LLVM_link_time_Optimizer.lto_debug_model;
+
+   type lto_debug_model_view is access all
+     LLVM_link_time_Optimizer.lto_debug_model;
+
+   -- lto_codegen_model
+   --
+   type lto_codegen_model is (
+      LTO_CODEGEN_PIC_MODEL_STATIC,
+      LTO_CODEGEN_PIC_MODEL_DYNAMIC,
+      LTO_CODEGEN_PIC_MODEL_DYNAMIC_NO_PIC);
+
+   for lto_codegen_model use
+     (LTO_CODEGEN_PIC_MODEL_STATIC         => 0,
+      LTO_CODEGEN_PIC_MODEL_DYNAMIC        => 1,
+      LTO_CODEGEN_PIC_MODEL_DYNAMIC_NO_PIC => 2);
+
+   pragma Convention (C, lto_codegen_model);
+
+   type lto_codegen_model_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased LLVM_link_time_Optimizer.lto_codegen_model;
+
+   type lto_codegen_model_view is access all
+     LLVM_link_time_Optimizer.lto_codegen_model;
+
+   -- LTOModule
+   --
+   type LTOModule is new Interfaces.C.Extensions.opaque_structure_def;
+
+   type LTOModule_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased LLVM_link_time_Optimizer.LTOModule;
+
+   type LTOModule_view is access all LLVM_link_time_Optimizer.LTOModule;
+
+   -- lto_module_t
+   --
+   type lto_module_t is access all LLVM_link_time_Optimizer.LTOModule;
+
+   type lto_module_t_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased LLVM_link_time_Optimizer.lto_module_t;
+
+   type lto_module_t_view is access all LLVM_link_time_Optimizer.lto_module_t;
+
+   -- LTOCodeGenerator
+   --
+   type LTOCodeGenerator is new Interfaces.C.Extensions.opaque_structure_def;
+
+   type LTOCodeGenerator_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased LLVM_link_time_Optimizer.LTOCodeGenerator;
+
+   type LTOCodeGenerator_view is access all
+     LLVM_link_time_Optimizer.LTOCodeGenerator;
+
+   -- lto_code_gen_t
+   --
+   type lto_code_gen_t is access all LLVM_link_time_Optimizer.LTOCodeGenerator;
+
+   type lto_code_gen_t_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased LLVM_link_time_Optimizer.lto_code_gen_t;
+
+   type lto_code_gen_t_view is access all
+     LLVM_link_time_Optimizer.lto_code_gen_t;
+
+   -- llvm_lto_status_t
+   --
+   type llvm_lto_status_t is (
+      LLVM_LTO_UNKNOWN,
+      LLVM_LTO_OPT_SUCCESS,
+      LLVM_LTO_READ_SUCCESS,
+      LLVM_LTO_READ_FAILURE,
+      LLVM_LTO_WRITE_FAILURE,
+      LLVM_LTO_NO_TARGET,
+      LLVM_LTO_NO_WORK,
+      LLVM_LTO_MODULE_MERGE_FAILURE,
+      LLVM_LTO_ASM_FAILURE,
+      LLVM_LTO_NULL_OBJECT);
+
+   for llvm_lto_status_t use
+     (LLVM_LTO_UNKNOWN              => 0,
+      LLVM_LTO_OPT_SUCCESS          => 1,
+      LLVM_LTO_READ_SUCCESS         => 2,
+      LLVM_LTO_READ_FAILURE         => 3,
+      LLVM_LTO_WRITE_FAILURE        => 4,
+      LLVM_LTO_NO_TARGET            => 5,
+      LLVM_LTO_NO_WORK              => 6,
+      LLVM_LTO_MODULE_MERGE_FAILURE => 7,
+      LLVM_LTO_ASM_FAILURE          => 8,
+      LLVM_LTO_NULL_OBJECT          => 9);
+
+   pragma Convention (C, llvm_lto_status_t);
+
+   type llvm_lto_status_t_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased LLVM_link_time_Optimizer.llvm_lto_status_t;
+
+   type llvm_lto_status_t_view is access all
+     LLVM_link_time_Optimizer.llvm_lto_status_t;
+
+
+   -- llvm_lto_t
+   --
+   type llvm_lto_t is access all Interfaces.C.Extensions.void;
+
+   type llvm_lto_t_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased LLVM_link_time_Optimizer.llvm_lto_t;
+
+   type llvm_lto_t_view is access all
+     LLVM_link_time_Optimizer.llvm_lto_t;
+
+
+end LLVM_link_time_Optimizer;

Added: llvm/trunk/bindings/ada/llvm/llvm_linktimeoptimizer_wrap.cxx
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ada/llvm/llvm_linktimeoptimizer_wrap.cxx?rev=79295&view=auto

==============================================================================
--- llvm/trunk/bindings/ada/llvm/llvm_linktimeoptimizer_wrap.cxx (added)
+++ llvm/trunk/bindings/ada/llvm/llvm_linktimeoptimizer_wrap.cxx Mon Aug 17 19:24:36 2009
@@ -0,0 +1,923 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 1.3.36
+ * 
+ * This file is not intended to be easily readable and contains a number of 
+ * coding conventions designed to improve portability and efficiency. Do not make
+ * changes to this file unless you know what you are doing--modify the SWIG 
+ * interface file instead. 
+ * ----------------------------------------------------------------------------- */
+
+
+#ifdef __cplusplus
+template<typename T> class SwigValueWrapper {
+    T *tt;
+public:
+    SwigValueWrapper() : tt(0) { }
+    SwigValueWrapper(const SwigValueWrapper<T>& rhs) : tt(new T(*rhs.tt)) { }
+    SwigValueWrapper(const T& t) : tt(new T(t)) { }
+    ~SwigValueWrapper() { delete tt; } 
+    SwigValueWrapper& operator=(const T& t) { delete tt; tt = new T(t); return *this; }
+    operator T&() const { return *tt; }
+    T *operator&() { return tt; }
+private:
+    SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
+};
+
+template <typename T> T SwigValueInit() {
+  return T();
+}
+#endif
+
+/* -----------------------------------------------------------------------------
+ *  This section contains generic SWIG labels for method/variable
+ *  declarations/attributes, and other compiler dependent labels.
+ * ----------------------------------------------------------------------------- */
+
+/* template workaround for compilers that cannot correctly implement the C++ standard */
+#ifndef SWIGTEMPLATEDISAMBIGUATOR
+# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
+#  define SWIGTEMPLATEDISAMBIGUATOR template
+# elif defined(__HP_aCC)
+/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
+/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
+#  define SWIGTEMPLATEDISAMBIGUATOR template
+# else
+#  define SWIGTEMPLATEDISAMBIGUATOR
+# endif
+#endif
+
+/* inline attribute */
+#ifndef SWIGINLINE
+# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
+#   define SWIGINLINE inline
+# else
+#   define SWIGINLINE
+# endif
+#endif
+
+/* attribute recognised by some compilers to avoid 'unused' warnings */
+#ifndef SWIGUNUSED
+# if defined(__GNUC__)
+#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
+#     define SWIGUNUSED __attribute__ ((__unused__)) 
+#   else
+#     define SWIGUNUSED
+#   endif
+# elif defined(__ICC)
+#   define SWIGUNUSED __attribute__ ((__unused__)) 
+# else
+#   define SWIGUNUSED 
+# endif
+#endif
+
+#ifndef SWIGUNUSEDPARM
+# ifdef __cplusplus
+#   define SWIGUNUSEDPARM(p)
+# else
+#   define SWIGUNUSEDPARM(p) p SWIGUNUSED 
+# endif
+#endif
+
+/* internal SWIG method */
+#ifndef SWIGINTERN
+# define SWIGINTERN static SWIGUNUSED
+#endif
+
+/* internal inline SWIG method */
+#ifndef SWIGINTERNINLINE
+# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
+#endif
+
+/* exporting methods */
+#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+#  ifndef GCC_HASCLASSVISIBILITY
+#    define GCC_HASCLASSVISIBILITY
+#  endif
+#endif
+
+#ifndef SWIGEXPORT
+# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+#   if defined(STATIC_LINKED)
+#     define SWIGEXPORT
+#   else
+#     define SWIGEXPORT __declspec(dllexport)
+#   endif
+# else
+#   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
+#     define SWIGEXPORT __attribute__ ((visibility("default")))
+#   else
+#     define SWIGEXPORT
+#   endif
+# endif
+#endif
+
+/* calling conventions for Windows */
+#ifndef SWIGSTDCALL
+# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+#   define SWIGSTDCALL __stdcall
+# else
+#   define SWIGSTDCALL
+# endif 
+#endif
+
+/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
+#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
+# define _CRT_SECURE_NO_DEPRECATE
+#endif
+
+/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
+#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
+# define _SCL_SECURE_NO_DEPRECATE
+#endif
+
+
+
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#if defined(_WIN32) || defined(__CYGWIN32__)
+#  define DllExport   __declspec( dllexport )
+#  define SWIGSTDCALL __stdcall
+#else
+#  define DllExport  
+#  define SWIGSTDCALL
+#endif 
+
+
+#ifdef __cplusplus
+#  include <new>
+#endif
+
+
+
+
+/* Support for throwing Ada exceptions from C/C++ */
+
+typedef enum 
+{
+  SWIG_AdaException,
+  SWIG_AdaOutOfMemoryException,
+  SWIG_AdaIndexOutOfRangeException,
+  SWIG_AdaDivideByZeroException,
+  SWIG_AdaArgumentOutOfRangeException,
+  SWIG_AdaNullReferenceException
+} SWIG_AdaExceptionCodes;
+
+
+typedef void (SWIGSTDCALL* SWIG_AdaExceptionCallback_t)(const char *);
+
+
+typedef struct 
+{
+  SWIG_AdaExceptionCodes code;
+  SWIG_AdaExceptionCallback_t callback;
+} 
+  SWIG_AdaExceptions_t;
+
+
+static 
+SWIG_AdaExceptions_t 
+SWIG_ada_exceptions[] = 
+{
+  { SWIG_AdaException, NULL },
+  { SWIG_AdaOutOfMemoryException, NULL },
+  { SWIG_AdaIndexOutOfRangeException, NULL },
+  { SWIG_AdaDivideByZeroException, NULL },
+  { SWIG_AdaArgumentOutOfRangeException, NULL },
+  { SWIG_AdaNullReferenceException, NULL } 
+};
+
+
+static 
+void 
+SWIG_AdaThrowException (SWIG_AdaExceptionCodes code, const char *msg) 
+{
+  SWIG_AdaExceptionCallback_t callback = SWIG_ada_exceptions[SWIG_AdaException].callback;
+  if (code >=0 && (size_t)code < sizeof(SWIG_ada_exceptions)/sizeof(SWIG_AdaExceptions_t)) {
+    callback = SWIG_ada_exceptions[code].callback;
+  }
+  callback(msg);
+}
+
+
+
+#ifdef __cplusplus
+extern "C" 
+#endif
+
+DllExport void SWIGSTDCALL SWIGRegisterExceptionCallbacks_LLVM_link_time_Optimizer (SWIG_AdaExceptionCallback_t systemException,
+                                                                   SWIG_AdaExceptionCallback_t outOfMemory, 
+                                                                   SWIG_AdaExceptionCallback_t indexOutOfRange, 
+                                                                   SWIG_AdaExceptionCallback_t divideByZero, 
+                                                                   SWIG_AdaExceptionCallback_t argumentOutOfRange,
+                                                                   SWIG_AdaExceptionCallback_t nullReference) 
+{
+  SWIG_ada_exceptions [SWIG_AdaException].callback                   = systemException;
+  SWIG_ada_exceptions [SWIG_AdaOutOfMemoryException].callback        = outOfMemory;
+  SWIG_ada_exceptions [SWIG_AdaIndexOutOfRangeException].callback    = indexOutOfRange;
+  SWIG_ada_exceptions [SWIG_AdaDivideByZeroException].callback       = divideByZero;
+  SWIG_ada_exceptions [SWIG_AdaArgumentOutOfRangeException].callback = argumentOutOfRange;
+  SWIG_ada_exceptions [SWIG_AdaNullReferenceException].callback      = nullReference;
+}
+
+
+/* Callback for returning strings to Ada without leaking memory */
+
+typedef char * (SWIGSTDCALL* SWIG_AdaStringHelperCallback)(const char *);
+static SWIG_AdaStringHelperCallback SWIG_ada_string_callback = NULL;
+
+
+
+/* probably obsolete ...
+#ifdef __cplusplus
+extern "C" 
+#endif
+DllExport void SWIGSTDCALL SWIGRegisterStringCallback_LLVM_link_time_Optimizer(SWIG_AdaStringHelperCallback callback) {
+  SWIG_ada_string_callback = callback;
+}
+*/
+
+
+
+/* Contract support */
+
+#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_AdaThrowException(SWIG_AdaArgumentOutOfRangeException, msg); return nullreturn; } else
+
+
+#define protected public
+#define private   public
+
+#include "llvm-c/lto.h"
+#include "llvm-c/LinkTimeOptimizer.h"
+
+
+
+//  struct LLVMCtxt;
+
+
+#undef protected
+#undef private
+#ifdef __cplusplus 
+extern "C" {
+#endif
+DllExport char * SWIGSTDCALL Ada_lto_get_version (
+  )
+{
+  char * jresult ;
+  char *result = 0 ;
+  
+  result = (char *)lto_get_version();
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport char * SWIGSTDCALL Ada_lto_get_error_message (
+  )
+{
+  char * jresult ;
+  char *result = 0 ;
+  
+  result = (char *)lto_get_error_message();
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport unsigned int SWIGSTDCALL Ada_lto_module_is_object_file (
+  char * jarg1
+  )
+{
+  unsigned int jresult ;
+  char *arg1 = (char *) 0 ;
+  bool result;
+  
+  arg1 = jarg1; 
+  
+  result = (bool)lto_module_is_object_file((char const *)arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport unsigned int SWIGSTDCALL Ada_lto_module_is_object_file_for_target (
+  char * jarg1
+  ,
+  
+  char * jarg2
+  )
+{
+  unsigned int jresult ;
+  char *arg1 = (char *) 0 ;
+  char *arg2 = (char *) 0 ;
+  bool result;
+  
+  arg1 = jarg1; 
+  
+  arg2 = jarg2; 
+  
+  result = (bool)lto_module_is_object_file_for_target((char const *)arg1,(char const *)arg2);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport unsigned int SWIGSTDCALL Ada_lto_module_is_object_file_in_memory (
+  void* jarg1
+  ,
+  
+  size_t jarg2
+  )
+{
+  unsigned int jresult ;
+  void *arg1 = (void *) 0 ;
+  size_t arg2 ;
+  bool result;
+  
+  arg1 = (void *)jarg1; 
+  
+  
+  arg2 = (size_t) jarg2; 
+  
+  
+  result = (bool)lto_module_is_object_file_in_memory((void const *)arg1,arg2);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport unsigned int SWIGSTDCALL Ada_lto_module_is_object_file_in_memory_for_target (
+  void* jarg1
+  ,
+  
+  size_t jarg2
+  ,
+  
+  char * jarg3
+  )
+{
+  unsigned int jresult ;
+  void *arg1 = (void *) 0 ;
+  size_t arg2 ;
+  char *arg3 = (char *) 0 ;
+  bool result;
+  
+  arg1 = (void *)jarg1; 
+  
+  
+  arg2 = (size_t) jarg2; 
+  
+  
+  arg3 = jarg3; 
+  
+  result = (bool)lto_module_is_object_file_in_memory_for_target((void const *)arg1,arg2,(char const *)arg3);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_lto_module_create (
+  char * jarg1
+  )
+{
+  void * jresult ;
+  char *arg1 = (char *) 0 ;
+  lto_module_t result;
+  
+  arg1 = jarg1; 
+  
+  result = (lto_module_t)lto_module_create((char const *)arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_lto_module_create_from_memory (
+  void* jarg1
+  ,
+  
+  size_t jarg2
+  )
+{
+  void * jresult ;
+  void *arg1 = (void *) 0 ;
+  size_t arg2 ;
+  lto_module_t result;
+  
+  arg1 = (void *)jarg1; 
+  
+  
+  arg2 = (size_t) jarg2; 
+  
+  
+  result = (lto_module_t)lto_module_create_from_memory((void const *)arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_lto_module_dispose (
+  void * jarg1
+  )
+{
+  lto_module_t arg1 = (lto_module_t) 0 ;
+  
+  arg1 = (lto_module_t)jarg1; 
+  
+  lto_module_dispose(arg1);
+  
+  
+}
+
+
+
+DllExport char * SWIGSTDCALL Ada_lto_module_get_target_triple (
+  void * jarg1
+  )
+{
+  char * jresult ;
+  lto_module_t arg1 = (lto_module_t) 0 ;
+  char *result = 0 ;
+  
+  arg1 = (lto_module_t)jarg1; 
+  
+  result = (char *)lto_module_get_target_triple(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport unsigned int SWIGSTDCALL Ada_lto_module_get_num_symbols (
+  void * jarg1
+  )
+{
+  unsigned int jresult ;
+  lto_module_t arg1 = (lto_module_t) 0 ;
+  unsigned int result;
+  
+  arg1 = (lto_module_t)jarg1; 
+  
+  result = (unsigned int)lto_module_get_num_symbols(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport char * SWIGSTDCALL Ada_lto_module_get_symbol_name (
+  void * jarg1
+  ,
+  
+  unsigned int jarg2
+  )
+{
+  char * jresult ;
+  lto_module_t arg1 = (lto_module_t) 0 ;
+  unsigned int arg2 ;
+  char *result = 0 ;
+  
+  arg1 = (lto_module_t)jarg1; 
+  
+  
+  arg2 = (unsigned int) jarg2; 
+  
+  
+  result = (char *)lto_module_get_symbol_name(arg1,arg2);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_lto_module_get_symbol_attribute (
+  void * jarg1
+  ,
+  
+  unsigned int jarg2
+  )
+{
+  int jresult ;
+  lto_module_t arg1 = (lto_module_t) 0 ;
+  unsigned int arg2 ;
+  lto_symbol_attributes result;
+  
+  arg1 = (lto_module_t)jarg1; 
+  
+  
+  arg2 = (unsigned int) jarg2; 
+  
+  
+  result = (lto_symbol_attributes)lto_module_get_symbol_attribute(arg1,arg2);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_lto_codegen_create (
+  )
+{
+  void * jresult ;
+  lto_code_gen_t result;
+  
+  result = (lto_code_gen_t)lto_codegen_create();
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_lto_codegen_dispose (
+  void * jarg1
+  )
+{
+  lto_code_gen_t arg1 = (lto_code_gen_t) 0 ;
+  
+  arg1 = (lto_code_gen_t)jarg1; 
+  
+  lto_codegen_dispose(arg1);
+  
+  
+}
+
+
+
+DllExport unsigned int SWIGSTDCALL Ada_lto_codegen_add_module (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  unsigned int jresult ;
+  lto_code_gen_t arg1 = (lto_code_gen_t) 0 ;
+  lto_module_t arg2 = (lto_module_t) 0 ;
+  bool result;
+  
+  arg1 = (lto_code_gen_t)jarg1; 
+  
+  arg2 = (lto_module_t)jarg2; 
+  
+  result = (bool)lto_codegen_add_module(arg1,arg2);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport unsigned int SWIGSTDCALL Ada_lto_codegen_set_debug_model (
+  void * jarg1
+  ,
+  
+  int jarg2
+  )
+{
+  unsigned int jresult ;
+  lto_code_gen_t arg1 = (lto_code_gen_t) 0 ;
+  lto_debug_model arg2 ;
+  bool result;
+  
+  arg1 = (lto_code_gen_t)jarg1; 
+  
+  arg2 = (lto_debug_model) jarg2; 
+  
+  result = (bool)lto_codegen_set_debug_model(arg1,arg2);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport unsigned int SWIGSTDCALL Ada_lto_codegen_set_pic_model (
+  void * jarg1
+  ,
+  
+  int jarg2
+  )
+{
+  unsigned int jresult ;
+  lto_code_gen_t arg1 = (lto_code_gen_t) 0 ;
+  lto_codegen_model arg2 ;
+  bool result;
+  
+  arg1 = (lto_code_gen_t)jarg1; 
+  
+  arg2 = (lto_codegen_model) jarg2; 
+  
+  result = (bool)lto_codegen_set_pic_model(arg1,arg2);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_lto_codegen_set_gcc_path (
+  void * jarg1
+  ,
+  
+  char * jarg2
+  )
+{
+  lto_code_gen_t arg1 = (lto_code_gen_t) 0 ;
+  char *arg2 = (char *) 0 ;
+  
+  arg1 = (lto_code_gen_t)jarg1; 
+  
+  arg2 = jarg2; 
+  
+  lto_codegen_set_gcc_path(arg1,(char const *)arg2);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_lto_codegen_set_assembler_path (
+  void * jarg1
+  ,
+  
+  char * jarg2
+  )
+{
+  lto_code_gen_t arg1 = (lto_code_gen_t) 0 ;
+  char *arg2 = (char *) 0 ;
+  
+  arg1 = (lto_code_gen_t)jarg1; 
+  
+  arg2 = jarg2; 
+  
+  lto_codegen_set_assembler_path(arg1,(char const *)arg2);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_lto_codegen_add_must_preserve_symbol (
+  void * jarg1
+  ,
+  
+  char * jarg2
+  )
+{
+  lto_code_gen_t arg1 = (lto_code_gen_t) 0 ;
+  char *arg2 = (char *) 0 ;
+  
+  arg1 = (lto_code_gen_t)jarg1; 
+  
+  arg2 = jarg2; 
+  
+  lto_codegen_add_must_preserve_symbol(arg1,(char const *)arg2);
+  
+  
+}
+
+
+
+DllExport unsigned int SWIGSTDCALL Ada_lto_codegen_write_merged_modules (
+  void * jarg1
+  ,
+  
+  char * jarg2
+  )
+{
+  unsigned int jresult ;
+  lto_code_gen_t arg1 = (lto_code_gen_t) 0 ;
+  char *arg2 = (char *) 0 ;
+  bool result;
+  
+  arg1 = (lto_code_gen_t)jarg1; 
+  
+  arg2 = jarg2; 
+  
+  result = (bool)lto_codegen_write_merged_modules(arg1,(char const *)arg2);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void* SWIGSTDCALL Ada_lto_codegen_compile (
+  void * jarg1
+  ,
+  
+  size_t* jarg2
+  )
+{
+  void* jresult ;
+  lto_code_gen_t arg1 = (lto_code_gen_t) 0 ;
+  size_t *arg2 = (size_t *) 0 ;
+  void *result = 0 ;
+  
+  arg1 = (lto_code_gen_t)jarg1; 
+  
+  
+  arg2 = (size_t *) jarg2;
+  
+  
+  result = (void *)lto_codegen_compile(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_lto_codegen_debug_options (
+  void * jarg1
+  ,
+  
+  char * jarg2
+  )
+{
+  lto_code_gen_t arg1 = (lto_code_gen_t) 0 ;
+  char *arg2 = (char *) 0 ;
+  
+  arg1 = (lto_code_gen_t)jarg1; 
+  
+  arg2 = jarg2; 
+  
+  lto_codegen_debug_options(arg1,(char const *)arg2);
+  
+  
+}
+
+
+
+DllExport void* SWIGSTDCALL Ada_llvm_create_optimizer (
+  )
+{
+  void* jresult ;
+  llvm_lto_t result;
+  
+  result = (llvm_lto_t)llvm_create_optimizer();
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_llvm_destroy_optimizer (
+  void* jarg1
+  )
+{
+  llvm_lto_t arg1 = (llvm_lto_t) 0 ;
+  
+  arg1 = (llvm_lto_t)jarg1; 
+  
+  llvm_destroy_optimizer(arg1);
+  
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_llvm_read_object_file (
+  void* jarg1
+  ,
+  
+  char * jarg2
+  )
+{
+  int jresult ;
+  llvm_lto_t arg1 = (llvm_lto_t) 0 ;
+  char *arg2 = (char *) 0 ;
+  llvm_lto_status_t result;
+  
+  arg1 = (llvm_lto_t)jarg1; 
+  
+  arg2 = jarg2; 
+  
+  result = (llvm_lto_status_t)llvm_read_object_file(arg1,(char const *)arg2);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_llvm_optimize_modules (
+  void* jarg1
+  ,
+  
+  char * jarg2
+  )
+{
+  int jresult ;
+  llvm_lto_t arg1 = (llvm_lto_t) 0 ;
+  char *arg2 = (char *) 0 ;
+  llvm_lto_status_t result;
+  
+  arg1 = (llvm_lto_t)jarg1; 
+  
+  arg2 = jarg2; 
+  
+  result = (llvm_lto_status_t)llvm_optimize_modules(arg1,(char const *)arg2);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+#ifdef __cplusplus
+}
+#endif
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+

Added: llvm/trunk/bindings/ada/llvm/llvm_wrap.cxx
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ada/llvm/llvm_wrap.cxx?rev=79295&view=auto

==============================================================================
--- llvm/trunk/bindings/ada/llvm/llvm_wrap.cxx (added)
+++ llvm/trunk/bindings/ada/llvm/llvm_wrap.cxx Mon Aug 17 19:24:36 2009
@@ -0,0 +1,8817 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 1.3.36
+ * 
+ * This file is not intended to be easily readable and contains a number of 
+ * coding conventions designed to improve portability and efficiency. Do not make
+ * changes to this file unless you know what you are doing--modify the SWIG 
+ * interface file instead. 
+ * ----------------------------------------------------------------------------- */
+
+
+#ifdef __cplusplus
+template<typename T> class SwigValueWrapper {
+    T *tt;
+public:
+    SwigValueWrapper() : tt(0) { }
+    SwigValueWrapper(const SwigValueWrapper<T>& rhs) : tt(new T(*rhs.tt)) { }
+    SwigValueWrapper(const T& t) : tt(new T(t)) { }
+    ~SwigValueWrapper() { delete tt; } 
+    SwigValueWrapper& operator=(const T& t) { delete tt; tt = new T(t); return *this; }
+    operator T&() const { return *tt; }
+    T *operator&() { return tt; }
+private:
+    SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
+};
+
+template <typename T> T SwigValueInit() {
+  return T();
+}
+#endif
+
+/* -----------------------------------------------------------------------------
+ *  This section contains generic SWIG labels for method/variable
+ *  declarations/attributes, and other compiler dependent labels.
+ * ----------------------------------------------------------------------------- */
+
+/* template workaround for compilers that cannot correctly implement the C++ standard */
+#ifndef SWIGTEMPLATEDISAMBIGUATOR
+# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
+#  define SWIGTEMPLATEDISAMBIGUATOR template
+# elif defined(__HP_aCC)
+/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
+/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
+#  define SWIGTEMPLATEDISAMBIGUATOR template
+# else
+#  define SWIGTEMPLATEDISAMBIGUATOR
+# endif
+#endif
+
+/* inline attribute */
+#ifndef SWIGINLINE
+# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
+#   define SWIGINLINE inline
+# else
+#   define SWIGINLINE
+# endif
+#endif
+
+/* attribute recognised by some compilers to avoid 'unused' warnings */
+#ifndef SWIGUNUSED
+# if defined(__GNUC__)
+#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
+#     define SWIGUNUSED __attribute__ ((__unused__)) 
+#   else
+#     define SWIGUNUSED
+#   endif
+# elif defined(__ICC)
+#   define SWIGUNUSED __attribute__ ((__unused__)) 
+# else
+#   define SWIGUNUSED 
+# endif
+#endif
+
+#ifndef SWIGUNUSEDPARM
+# ifdef __cplusplus
+#   define SWIGUNUSEDPARM(p)
+# else
+#   define SWIGUNUSEDPARM(p) p SWIGUNUSED 
+# endif
+#endif
+
+/* internal SWIG method */
+#ifndef SWIGINTERN
+# define SWIGINTERN static SWIGUNUSED
+#endif
+
+/* internal inline SWIG method */
+#ifndef SWIGINTERNINLINE
+# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
+#endif
+
+/* exporting methods */
+#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+#  ifndef GCC_HASCLASSVISIBILITY
+#    define GCC_HASCLASSVISIBILITY
+#  endif
+#endif
+
+#ifndef SWIGEXPORT
+# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+#   if defined(STATIC_LINKED)
+#     define SWIGEXPORT
+#   else
+#     define SWIGEXPORT __declspec(dllexport)
+#   endif
+# else
+#   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
+#     define SWIGEXPORT __attribute__ ((visibility("default")))
+#   else
+#     define SWIGEXPORT
+#   endif
+# endif
+#endif
+
+/* calling conventions for Windows */
+#ifndef SWIGSTDCALL
+# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+#   define SWIGSTDCALL __stdcall
+# else
+#   define SWIGSTDCALL
+# endif 
+#endif
+
+/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
+#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
+# define _CRT_SECURE_NO_DEPRECATE
+#endif
+
+/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
+#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
+# define _SCL_SECURE_NO_DEPRECATE
+#endif
+
+
+
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#if defined(_WIN32) || defined(__CYGWIN32__)
+#  define DllExport   __declspec( dllexport )
+#  define SWIGSTDCALL __stdcall
+#else
+#  define DllExport  
+#  define SWIGSTDCALL
+#endif 
+
+
+#ifdef __cplusplus
+#  include <new>
+#endif
+
+
+
+
+/* Support for throwing Ada exceptions from C/C++ */
+
+typedef enum 
+{
+  SWIG_AdaException,
+  SWIG_AdaOutOfMemoryException,
+  SWIG_AdaIndexOutOfRangeException,
+  SWIG_AdaDivideByZeroException,
+  SWIG_AdaArgumentOutOfRangeException,
+  SWIG_AdaNullReferenceException
+} SWIG_AdaExceptionCodes;
+
+
+typedef void (SWIGSTDCALL* SWIG_AdaExceptionCallback_t)(const char *);
+
+
+typedef struct 
+{
+  SWIG_AdaExceptionCodes code;
+  SWIG_AdaExceptionCallback_t callback;
+} 
+  SWIG_AdaExceptions_t;
+
+
+static 
+SWIG_AdaExceptions_t 
+SWIG_ada_exceptions[] = 
+{
+  { SWIG_AdaException, NULL },
+  { SWIG_AdaOutOfMemoryException, NULL },
+  { SWIG_AdaIndexOutOfRangeException, NULL },
+  { SWIG_AdaDivideByZeroException, NULL },
+  { SWIG_AdaArgumentOutOfRangeException, NULL },
+  { SWIG_AdaNullReferenceException, NULL } 
+};
+
+
+static 
+void 
+SWIG_AdaThrowException (SWIG_AdaExceptionCodes code, const char *msg) 
+{
+  SWIG_AdaExceptionCallback_t callback = SWIG_ada_exceptions[SWIG_AdaException].callback;
+  if (code >=0 && (size_t)code < sizeof(SWIG_ada_exceptions)/sizeof(SWIG_AdaExceptions_t)) {
+    callback = SWIG_ada_exceptions[code].callback;
+  }
+  callback(msg);
+}
+
+
+
+#ifdef __cplusplus
+extern "C" 
+#endif
+
+DllExport void SWIGSTDCALL SWIGRegisterExceptionCallbacks_llvm (SWIG_AdaExceptionCallback_t systemException,
+                                                                   SWIG_AdaExceptionCallback_t outOfMemory, 
+                                                                   SWIG_AdaExceptionCallback_t indexOutOfRange, 
+                                                                   SWIG_AdaExceptionCallback_t divideByZero, 
+                                                                   SWIG_AdaExceptionCallback_t argumentOutOfRange,
+                                                                   SWIG_AdaExceptionCallback_t nullReference) 
+{
+  SWIG_ada_exceptions [SWIG_AdaException].callback                   = systemException;
+  SWIG_ada_exceptions [SWIG_AdaOutOfMemoryException].callback        = outOfMemory;
+  SWIG_ada_exceptions [SWIG_AdaIndexOutOfRangeException].callback    = indexOutOfRange;
+  SWIG_ada_exceptions [SWIG_AdaDivideByZeroException].callback       = divideByZero;
+  SWIG_ada_exceptions [SWIG_AdaArgumentOutOfRangeException].callback = argumentOutOfRange;
+  SWIG_ada_exceptions [SWIG_AdaNullReferenceException].callback      = nullReference;
+}
+
+
+/* Callback for returning strings to Ada without leaking memory */
+
+typedef char * (SWIGSTDCALL* SWIG_AdaStringHelperCallback)(const char *);
+static SWIG_AdaStringHelperCallback SWIG_ada_string_callback = NULL;
+
+
+
+/* probably obsolete ...
+#ifdef __cplusplus
+extern "C" 
+#endif
+DllExport void SWIGSTDCALL SWIGRegisterStringCallback_llvm(SWIG_AdaStringHelperCallback callback) {
+  SWIG_ada_string_callback = callback;
+}
+*/
+
+
+
+/* Contract support */
+
+#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_AdaThrowException(SWIG_AdaArgumentOutOfRangeException, msg); return nullreturn; } else
+
+
+#define protected public
+#define private   public
+
+//#include "llvm-c/Analysis.h"
+//#include "llvm-c/BitReader.h"
+//#include "llvm-c/BitWriter.h"
+#include "llvm-c/Core.h"
+//#include "llvm-c/ExecutionEngine.h"
+//#include "llvm-c/LinkTimeOptimizer.h"
+//#include "llvm-c/lto.h"
+//#include "llvm-c/Target.h"
+
+
+
+  struct LLVMCtxt;
+//  struct LLVMOpaqueType;
+//  struct LLVMOpaqueValue;
+
+#undef protected
+#undef private
+#ifdef __cplusplus 
+extern "C" {
+#endif
+DllExport void SWIGSTDCALL Ada_LLVMDisposeMessage (
+  char * jarg1
+  )
+{
+  char *arg1 = (char *) 0 ;
+  
+  arg1 = jarg1; 
+  
+  LLVMDisposeMessage(arg1);
+  
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMContextCreate (
+  )
+{
+  void * jresult ;
+  LLVMContextRef result;
+  
+  result = (LLVMContextRef)LLVMContextCreate();
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetGlobalContext (
+  )
+{
+  void * jresult ;
+  LLVMContextRef result;
+  
+  result = (LLVMContextRef)LLVMGetGlobalContext();
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMContextDispose (
+  void * jarg1
+  )
+{
+  LLVMContextRef arg1 = (LLVMContextRef) 0 ;
+  
+  arg1 = (LLVMContextRef)jarg1; 
+  
+  LLVMContextDispose(arg1);
+  
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMModuleCreateWithName (
+  char * jarg1
+  )
+{
+  void * jresult ;
+  char *arg1 = (char *) 0 ;
+  LLVMModuleRef result;
+  
+  arg1 = jarg1; 
+  
+  result = (LLVMModuleRef)LLVMModuleCreateWithName((char const *)arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMModuleCreateWithNameInContext (
+  char * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  char *arg1 = (char *) 0 ;
+  LLVMContextRef arg2 = (LLVMContextRef) 0 ;
+  LLVMModuleRef result;
+  
+  arg1 = jarg1; 
+  
+  arg2 = (LLVMContextRef)jarg2; 
+  
+  result = (LLVMModuleRef)LLVMModuleCreateWithNameInContext((char const *)arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMDisposeModule (
+  void * jarg1
+  )
+{
+  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
+  
+  arg1 = (LLVMModuleRef)jarg1; 
+  
+  LLVMDisposeModule(arg1);
+  
+  
+}
+
+
+
+DllExport char * SWIGSTDCALL Ada_LLVMGetDataLayout (
+  void * jarg1
+  )
+{
+  char * jresult ;
+  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
+  char *result = 0 ;
+  
+  arg1 = (LLVMModuleRef)jarg1; 
+  
+  result = (char *)LLVMGetDataLayout(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMSetDataLayout (
+  void * jarg1
+  ,
+  
+  char * jarg2
+  )
+{
+  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
+  char *arg2 = (char *) 0 ;
+  
+  arg1 = (LLVMModuleRef)jarg1; 
+  
+  arg2 = jarg2; 
+  
+  LLVMSetDataLayout(arg1,(char const *)arg2);
+  
+  
+}
+
+
+
+DllExport char * SWIGSTDCALL Ada_LLVMGetTarget (
+  void * jarg1
+  )
+{
+  char * jresult ;
+  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
+  char *result = 0 ;
+  
+  arg1 = (LLVMModuleRef)jarg1; 
+  
+  result = (char *)LLVMGetTarget(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMSetTarget (
+  void * jarg1
+  ,
+  
+  char * jarg2
+  )
+{
+  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
+  char *arg2 = (char *) 0 ;
+  
+  arg1 = (LLVMModuleRef)jarg1; 
+  
+  arg2 = jarg2; 
+  
+  LLVMSetTarget(arg1,(char const *)arg2);
+  
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMAddTypeName (
+  void * jarg1
+  ,
+  
+  char * jarg2
+  ,
+  
+  void * jarg3
+  )
+{
+  int jresult ;
+  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
+  char *arg2 = (char *) 0 ;
+  LLVMTypeRef arg3 = (LLVMTypeRef) 0 ;
+  int result;
+  
+  arg1 = (LLVMModuleRef)jarg1; 
+  
+  arg2 = jarg2; 
+  
+  arg3 = (LLVMTypeRef)jarg3; 
+  
+  result = (int)LLVMAddTypeName(arg1,(char const *)arg2,arg3);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMDeleteTypeName (
+  void * jarg1
+  ,
+  
+  char * jarg2
+  )
+{
+  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
+  char *arg2 = (char *) 0 ;
+  
+  arg1 = (LLVMModuleRef)jarg1; 
+  
+  arg2 = jarg2; 
+  
+  LLVMDeleteTypeName(arg1,(char const *)arg2);
+  
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetTypeByName (
+  void * jarg1
+  ,
+  
+  char * jarg2
+  )
+{
+  void * jresult ;
+  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
+  char *arg2 = (char *) 0 ;
+  LLVMTypeRef result;
+  
+  arg1 = (LLVMModuleRef)jarg1; 
+  
+  arg2 = jarg2; 
+  
+  result = (LLVMTypeRef)LLVMGetTypeByName(arg1,(char const *)arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMDumpModule (
+  void * jarg1
+  )
+{
+  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
+  
+  arg1 = (LLVMModuleRef)jarg1; 
+  
+  LLVMDumpModule(arg1);
+  
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMGetTypeKind (
+  void * jarg1
+  )
+{
+  int jresult ;
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  LLVMTypeKind result;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  result = (LLVMTypeKind)LLVMGetTypeKind(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMInt1Type (
+  )
+{
+  void * jresult ;
+  LLVMTypeRef result;
+  
+  result = (LLVMTypeRef)LLVMInt1Type();
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMInt8Type (
+  )
+{
+  void * jresult ;
+  LLVMTypeRef result;
+  
+  result = (LLVMTypeRef)LLVMInt8Type();
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMInt16Type (
+  )
+{
+  void * jresult ;
+  LLVMTypeRef result;
+  
+  result = (LLVMTypeRef)LLVMInt16Type();
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMInt32Type (
+  )
+{
+  void * jresult ;
+  LLVMTypeRef result;
+  
+  result = (LLVMTypeRef)LLVMInt32Type();
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMInt64Type (
+  )
+{
+  void * jresult ;
+  LLVMTypeRef result;
+  
+  result = (LLVMTypeRef)LLVMInt64Type();
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIntType (
+  unsigned int jarg1
+  )
+{
+  void * jresult ;
+  unsigned int arg1 ;
+  LLVMTypeRef result;
+  
+  
+  arg1 = (unsigned int) jarg1; 
+  
+  
+  result = (LLVMTypeRef)LLVMIntType(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport unsigned int SWIGSTDCALL Ada_LLVMGetIntTypeWidth (
+  void * jarg1
+  )
+{
+  unsigned int jresult ;
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  unsigned int result;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  result = (unsigned int)LLVMGetIntTypeWidth(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMFloatType (
+  )
+{
+  void * jresult ;
+  LLVMTypeRef result;
+  
+  result = (LLVMTypeRef)LLVMFloatType();
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMDoubleType (
+  )
+{
+  void * jresult ;
+  LLVMTypeRef result;
+  
+  result = (LLVMTypeRef)LLVMDoubleType();
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMX86FP80Type (
+  )
+{
+  void * jresult ;
+  LLVMTypeRef result;
+  
+  result = (LLVMTypeRef)LLVMX86FP80Type();
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMFP128Type (
+  )
+{
+  void * jresult ;
+  LLVMTypeRef result;
+  
+  result = (LLVMTypeRef)LLVMFP128Type();
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMPPCFP128Type (
+  )
+{
+  void * jresult ;
+  LLVMTypeRef result;
+  
+  result = (LLVMTypeRef)LLVMPPCFP128Type();
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMFunctionType (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  unsigned int jarg3
+  ,
+  
+  int jarg4
+  )
+{
+  void * jresult ;
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  LLVMTypeRef *arg2 = (LLVMTypeRef *) 0 ;
+  unsigned int arg3 ;
+  int arg4 ;
+  LLVMTypeRef result;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef *)jarg2; 
+  
+  
+  arg3 = (unsigned int) jarg3; 
+  
+  
+  
+  arg4 = (int) jarg4; 
+  
+  
+  result = (LLVMTypeRef)LLVMFunctionType(arg1,arg2,arg3,arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMIsFunctionVarArg (
+  void * jarg1
+  )
+{
+  int jresult ;
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  int result;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  result = (int)LLVMIsFunctionVarArg(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetReturnType (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  LLVMTypeRef result;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  result = (LLVMTypeRef)LLVMGetReturnType(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport unsigned int SWIGSTDCALL Ada_LLVMCountParamTypes (
+  void * jarg1
+  )
+{
+  unsigned int jresult ;
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  unsigned int result;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  result = (unsigned int)LLVMCountParamTypes(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMGetParamTypes (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  LLVMTypeRef *arg2 = (LLVMTypeRef *) 0 ;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef *)jarg2; 
+  
+  LLVMGetParamTypes(arg1,arg2);
+  
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMStructType (
+  void * jarg1
+  ,
+  
+  unsigned int jarg2
+  ,
+  
+  int jarg3
+  )
+{
+  void * jresult ;
+  LLVMTypeRef *arg1 = (LLVMTypeRef *) 0 ;
+  unsigned int arg2 ;
+  int arg3 ;
+  LLVMTypeRef result;
+  
+  arg1 = (LLVMTypeRef *)jarg1; 
+  
+  
+  arg2 = (unsigned int) jarg2; 
+  
+  
+  
+  arg3 = (int) jarg3; 
+  
+  
+  result = (LLVMTypeRef)LLVMStructType(arg1,arg2,arg3);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport unsigned int SWIGSTDCALL Ada_LLVMCountStructElementTypes (
+  void * jarg1
+  )
+{
+  unsigned int jresult ;
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  unsigned int result;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  result = (unsigned int)LLVMCountStructElementTypes(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMGetStructElementTypes (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  LLVMTypeRef *arg2 = (LLVMTypeRef *) 0 ;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef *)jarg2; 
+  
+  LLVMGetStructElementTypes(arg1,arg2);
+  
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMIsPackedStruct (
+  void * jarg1
+  )
+{
+  int jresult ;
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  int result;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  result = (int)LLVMIsPackedStruct(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMArrayType (
+  void * jarg1
+  ,
+  
+  unsigned int jarg2
+  )
+{
+  void * jresult ;
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  unsigned int arg2 ;
+  LLVMTypeRef result;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  
+  arg2 = (unsigned int) jarg2; 
+  
+  
+  result = (LLVMTypeRef)LLVMArrayType(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMPointerType (
+  void * jarg1
+  ,
+  
+  unsigned int jarg2
+  )
+{
+  void * jresult ;
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  unsigned int arg2 ;
+  LLVMTypeRef result;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  
+  arg2 = (unsigned int) jarg2; 
+  
+  
+  result = (LLVMTypeRef)LLVMPointerType(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMVectorType (
+  void * jarg1
+  ,
+  
+  unsigned int jarg2
+  )
+{
+  void * jresult ;
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  unsigned int arg2 ;
+  LLVMTypeRef result;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  
+  arg2 = (unsigned int) jarg2; 
+  
+  
+  result = (LLVMTypeRef)LLVMVectorType(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetElementType (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  LLVMTypeRef result;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  result = (LLVMTypeRef)LLVMGetElementType(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport unsigned int SWIGSTDCALL Ada_LLVMGetArrayLength (
+  void * jarg1
+  )
+{
+  unsigned int jresult ;
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  unsigned int result;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  result = (unsigned int)LLVMGetArrayLength(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport unsigned int SWIGSTDCALL Ada_LLVMGetPointerAddressSpace (
+  void * jarg1
+  )
+{
+  unsigned int jresult ;
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  unsigned int result;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  result = (unsigned int)LLVMGetPointerAddressSpace(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport unsigned int SWIGSTDCALL Ada_LLVMGetVectorSize (
+  void * jarg1
+  )
+{
+  unsigned int jresult ;
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  unsigned int result;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  result = (unsigned int)LLVMGetVectorSize(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMVoidType (
+  )
+{
+  void * jresult ;
+  LLVMTypeRef result;
+  
+  result = (LLVMTypeRef)LLVMVoidType();
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMLabelType (
+  )
+{
+  void * jresult ;
+  LLVMTypeRef result;
+  
+  result = (LLVMTypeRef)LLVMLabelType();
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMOpaqueType (
+  )
+{
+  void * jresult ;
+  LLVMTypeRef result;
+  
+  result = (LLVMTypeRef)LLVMOpaqueType();
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMCreateTypeHandle (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  LLVMTypeHandleRef result;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  result = (LLVMTypeHandleRef)LLVMCreateTypeHandle(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMRefineType (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef)jarg2; 
+  
+  LLVMRefineType(arg1,arg2);
+  
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMResolveTypeHandle (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMTypeHandleRef arg1 = (LLVMTypeHandleRef) 0 ;
+  LLVMTypeRef result;
+  
+  arg1 = (LLVMTypeHandleRef)jarg1; 
+  
+  result = (LLVMTypeRef)LLVMResolveTypeHandle(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMDisposeTypeHandle (
+  void * jarg1
+  )
+{
+  LLVMTypeHandleRef arg1 = (LLVMTypeHandleRef) 0 ;
+  
+  arg1 = (LLVMTypeHandleRef)jarg1; 
+  
+  LLVMDisposeTypeHandle(arg1);
+  
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMTypeOf (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMTypeRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMTypeRef)LLVMTypeOf(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport char * SWIGSTDCALL Ada_LLVMGetValueName (
+  void * jarg1
+  )
+{
+  char * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  char *result = 0 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (char *)LLVMGetValueName(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMSetValueName (
+  void * jarg1
+  ,
+  
+  char * jarg2
+  )
+{
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  char *arg2 = (char *) 0 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = jarg2; 
+  
+  LLVMSetValueName(arg1,(char const *)arg2);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMDumpValue (
+  void * jarg1
+  )
+{
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  LLVMDumpValue(arg1);
+  
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAArgument (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAArgument(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsABasicBlock (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsABasicBlock(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAInlineAsm (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAInlineAsm(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAUser (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAUser(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAConstant (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAConstant(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAConstantAggregateZero (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAConstantAggregateZero(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAConstantArray (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAConstantArray(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAConstantExpr (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAConstantExpr(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAConstantFP (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAConstantFP(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAConstantInt (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAConstantInt(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAConstantPointerNull (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAConstantPointerNull(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAConstantStruct (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAConstantStruct(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAConstantVector (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAConstantVector(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAGlobalValue (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAGlobalValue(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAFunction (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAFunction(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAGlobalAlias (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAGlobalAlias(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAGlobalVariable (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAGlobalVariable(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAUndefValue (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAUndefValue(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAInstruction (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAInstruction(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsABinaryOperator (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsABinaryOperator(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsACallInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsACallInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAIntrinsicInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAIntrinsicInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsADbgInfoIntrinsic (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsADbgInfoIntrinsic(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsADbgDeclareInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsADbgDeclareInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsADbgFuncStartInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsADbgFuncStartInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsADbgRegionEndInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsADbgRegionEndInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsADbgRegionStartInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsADbgRegionStartInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsADbgStopPointInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsADbgStopPointInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAEHSelectorInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAEHSelectorInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAMemIntrinsic (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAMemIntrinsic(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAMemCpyInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAMemCpyInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAMemMoveInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAMemMoveInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAMemSetInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAMemSetInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsACmpInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsACmpInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAFCmpInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAFCmpInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAICmpInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAICmpInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAExtractElementInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAExtractElementInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAGetElementPtrInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAGetElementPtrInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAInsertElementInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAInsertElementInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAInsertValueInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAInsertValueInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAPHINode (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAPHINode(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsASelectInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsASelectInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAShuffleVectorInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAShuffleVectorInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAStoreInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAStoreInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsATerminatorInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsATerminatorInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsABranchInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsABranchInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAInvokeInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAInvokeInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAReturnInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAReturnInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsASwitchInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsASwitchInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAUnreachableInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAUnreachableInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAUnwindInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAUnwindInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAUnaryInstruction (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAUnaryInstruction(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAAllocationInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAAllocationInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAAllocaInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAAllocaInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAMallocInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAMallocInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsACastInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsACastInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsABitCastInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsABitCastInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAFPExtInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAFPExtInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAFPToSIInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAFPToSIInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAFPToUIInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAFPToUIInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAFPTruncInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAFPTruncInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAIntToPtrInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAIntToPtrInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAPtrToIntInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAPtrToIntInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsASExtInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsASExtInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsASIToFPInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsASIToFPInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsATruncInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsATruncInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAUIToFPInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAUIToFPInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAZExtInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAZExtInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAExtractValueInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAExtractValueInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAFreeInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAFreeInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsALoadInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsALoadInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIsAVAArgInst (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMIsAVAArgInst(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstNull (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMConstNull(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstAllOnes (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMConstAllOnes(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetUndef (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMGetUndef(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMIsConstant (
+  void * jarg1
+  )
+{
+  int jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  int result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (int)LLVMIsConstant(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMIsNull (
+  void * jarg1
+  )
+{
+  int jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  int result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (int)LLVMIsNull(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMIsUndef (
+  void * jarg1
+  )
+{
+  int jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  int result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (int)LLVMIsUndef(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstPointerNull (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMConstPointerNull(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstInt (
+  void * jarg1
+  ,
+  
+  unsigned long long jarg2
+  ,
+  
+  int jarg3
+  )
+{
+  void * jresult ;
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  unsigned long long arg2 ;
+  int arg3 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  
+  arg2 = (unsigned long long) jarg2; 
+  
+  
+  
+  arg3 = (int) jarg3; 
+  
+  
+  result = (LLVMValueRef)LLVMConstInt(arg1,arg2,arg3);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstReal (
+  void * jarg1
+  ,
+  
+  double jarg2
+  )
+{
+  void * jresult ;
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  double arg2 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  
+  arg2 = (double) jarg2; 
+  
+  
+  result = (LLVMValueRef)LLVMConstReal(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstRealOfString (
+  void * jarg1
+  ,
+  
+  char * jarg2
+  )
+{
+  void * jresult ;
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  char *arg2 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  arg2 = jarg2; 
+  
+  result = (LLVMValueRef)LLVMConstRealOfString(arg1,(char const *)arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstString (
+  char * jarg1
+  ,
+  
+  unsigned int jarg2
+  ,
+  
+  int jarg3
+  )
+{
+  void * jresult ;
+  char *arg1 = (char *) 0 ;
+  unsigned int arg2 ;
+  int arg3 ;
+  LLVMValueRef result;
+  
+  arg1 = jarg1; 
+  
+  
+  arg2 = (unsigned int) jarg2; 
+  
+  
+  
+  arg3 = (int) jarg3; 
+  
+  
+  result = (LLVMValueRef)LLVMConstString((char const *)arg1,arg2,arg3);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstArray (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  unsigned int jarg3
+  )
+{
+  void * jresult ;
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  LLVMValueRef *arg2 = (LLVMValueRef *) 0 ;
+  unsigned int arg3 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  arg2 = (LLVMValueRef *)jarg2; 
+  
+  
+  arg3 = (unsigned int) jarg3; 
+  
+  
+  result = (LLVMValueRef)LLVMConstArray(arg1,arg2,arg3);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstStruct (
+  void * jarg1
+  ,
+  
+  unsigned int jarg2
+  ,
+  
+  int jarg3
+  )
+{
+  void * jresult ;
+  LLVMValueRef *arg1 = (LLVMValueRef *) 0 ;
+  unsigned int arg2 ;
+  int arg3 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef *)jarg1; 
+  
+  
+  arg2 = (unsigned int) jarg2; 
+  
+  
+  
+  arg3 = (int) jarg3; 
+  
+  
+  result = (LLVMValueRef)LLVMConstStruct(arg1,arg2,arg3);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstVector (
+  void * jarg1
+  ,
+  
+  unsigned int jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef *arg1 = (LLVMValueRef *) 0 ;
+  unsigned int arg2 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef *)jarg1; 
+  
+  
+  arg2 = (unsigned int) jarg2; 
+  
+  
+  result = (LLVMValueRef)LLVMConstVector(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMSizeOf (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMSizeOf(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstNeg (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMConstNeg(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstNot (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMConstNot(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstAdd (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  result = (LLVMValueRef)LLVMConstAdd(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstSub (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  result = (LLVMValueRef)LLVMConstSub(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstMul (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  result = (LLVMValueRef)LLVMConstMul(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstUDiv (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  result = (LLVMValueRef)LLVMConstUDiv(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstSDiv (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  result = (LLVMValueRef)LLVMConstSDiv(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstFDiv (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  result = (LLVMValueRef)LLVMConstFDiv(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstURem (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  result = (LLVMValueRef)LLVMConstURem(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstSRem (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  result = (LLVMValueRef)LLVMConstSRem(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstFRem (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  result = (LLVMValueRef)LLVMConstFRem(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstAnd (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  result = (LLVMValueRef)LLVMConstAnd(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstOr (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  result = (LLVMValueRef)LLVMConstOr(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstXor (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  result = (LLVMValueRef)LLVMConstXor(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstICmp (
+  int jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  )
+{
+  void * jresult ;
+  LLVMIntPredicate arg1 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMIntPredicate) jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  result = (LLVMValueRef)LLVMConstICmp(arg1,arg2,arg3);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstFCmp (
+  int jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  )
+{
+  void * jresult ;
+  LLVMRealPredicate arg1 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMRealPredicate) jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  result = (LLVMValueRef)LLVMConstFCmp(arg1,arg2,arg3);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstShl (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  result = (LLVMValueRef)LLVMConstShl(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstLShr (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  result = (LLVMValueRef)LLVMConstLShr(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstAShr (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  result = (LLVMValueRef)LLVMConstAShr(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstGEP (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  unsigned int jarg3
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef *arg2 = (LLVMValueRef *) 0 ;
+  unsigned int arg3 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMValueRef *)jarg2; 
+  
+  
+  arg3 = (unsigned int) jarg3; 
+  
+  
+  result = (LLVMValueRef)LLVMConstGEP(arg1,arg2,arg3);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstTrunc (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef)jarg2; 
+  
+  result = (LLVMValueRef)LLVMConstTrunc(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstSExt (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef)jarg2; 
+  
+  result = (LLVMValueRef)LLVMConstSExt(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstZExt (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef)jarg2; 
+  
+  result = (LLVMValueRef)LLVMConstZExt(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstFPTrunc (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef)jarg2; 
+  
+  result = (LLVMValueRef)LLVMConstFPTrunc(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstFPExt (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef)jarg2; 
+  
+  result = (LLVMValueRef)LLVMConstFPExt(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstUIToFP (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef)jarg2; 
+  
+  result = (LLVMValueRef)LLVMConstUIToFP(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstSIToFP (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef)jarg2; 
+  
+  result = (LLVMValueRef)LLVMConstSIToFP(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstFPToUI (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef)jarg2; 
+  
+  result = (LLVMValueRef)LLVMConstFPToUI(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstFPToSI (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef)jarg2; 
+  
+  result = (LLVMValueRef)LLVMConstFPToSI(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstPtrToInt (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef)jarg2; 
+  
+  result = (LLVMValueRef)LLVMConstPtrToInt(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstIntToPtr (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef)jarg2; 
+  
+  result = (LLVMValueRef)LLVMConstIntToPtr(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstBitCast (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef)jarg2; 
+  
+  result = (LLVMValueRef)LLVMConstBitCast(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstSelect (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  result = (LLVMValueRef)LLVMConstSelect(arg1,arg2,arg3);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstExtractElement (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  result = (LLVMValueRef)LLVMConstExtractElement(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstInsertElement (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  result = (LLVMValueRef)LLVMConstInsertElement(arg1,arg2,arg3);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstShuffleVector (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  result = (LLVMValueRef)LLVMConstShuffleVector(arg1,arg2,arg3);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstExtractValue (
+  void * jarg1
+  ,
+  
+  unsigned int* jarg2
+  ,
+  
+  unsigned int jarg3
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  unsigned int *arg2 = (unsigned int *) 0 ;
+  unsigned int arg3 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  
+  arg2 = (unsigned int *) jarg2;
+  
+  
+  
+  arg3 = (unsigned int) jarg3; 
+  
+  
+  result = (LLVMValueRef)LLVMConstExtractValue(arg1,arg2,arg3);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstInsertValue (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  unsigned int* jarg3
+  ,
+  
+  unsigned int jarg4
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  unsigned int *arg3 = (unsigned int *) 0 ;
+  unsigned int arg4 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  
+  arg3 = (unsigned int *) jarg3;
+  
+  
+  
+  arg4 = (unsigned int) jarg4; 
+  
+  
+  result = (LLVMValueRef)LLVMConstInsertValue(arg1,arg2,arg3,arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMConstInlineAsm (
+  void * jarg1
+  ,
+  
+  char * jarg2
+  ,
+  
+  char * jarg3
+  ,
+  
+  int jarg4
+  )
+{
+  void * jresult ;
+  LLVMTypeRef arg1 = (LLVMTypeRef) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  int arg4 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMTypeRef)jarg1; 
+  
+  arg2 = jarg2; 
+  
+  arg3 = jarg3; 
+  
+  
+  arg4 = (int) jarg4; 
+  
+  
+  result = (LLVMValueRef)LLVMConstInlineAsm(arg1,(char const *)arg2,(char const *)arg3,arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetGlobalParent (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMModuleRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMModuleRef)LLVMGetGlobalParent(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMIsDeclaration (
+  void * jarg1
+  )
+{
+  int jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  int result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (int)LLVMIsDeclaration(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMGetLinkage (
+  void * jarg1
+  )
+{
+  int jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMLinkage result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMLinkage)LLVMGetLinkage(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMSetLinkage (
+  void * jarg1
+  ,
+  
+  int jarg2
+  )
+{
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMLinkage arg2 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMLinkage) jarg2; 
+  
+  LLVMSetLinkage(arg1,arg2);
+  
+  
+}
+
+
+
+DllExport char * SWIGSTDCALL Ada_LLVMGetSection (
+  void * jarg1
+  )
+{
+  char * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  char *result = 0 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (char *)LLVMGetSection(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMSetSection (
+  void * jarg1
+  ,
+  
+  char * jarg2
+  )
+{
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  char *arg2 = (char *) 0 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = jarg2; 
+  
+  LLVMSetSection(arg1,(char const *)arg2);
+  
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMGetVisibility (
+  void * jarg1
+  )
+{
+  int jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMVisibility result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMVisibility)LLVMGetVisibility(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMSetVisibility (
+  void * jarg1
+  ,
+  
+  int jarg2
+  )
+{
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMVisibility arg2 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMVisibility) jarg2; 
+  
+  LLVMSetVisibility(arg1,arg2);
+  
+  
+}
+
+
+
+DllExport unsigned int SWIGSTDCALL Ada_LLVMGetAlignment (
+  void * jarg1
+  )
+{
+  unsigned int jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  unsigned int result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (unsigned int)LLVMGetAlignment(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMSetAlignment (
+  void * jarg1
+  ,
+  
+  unsigned int jarg2
+  )
+{
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  unsigned int arg2 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  
+  arg2 = (unsigned int) jarg2; 
+  
+  
+  LLVMSetAlignment(arg1,arg2);
+  
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMAddGlobal (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  char * jarg3
+  )
+{
+  void * jresult ;
+  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
+  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
+  char *arg3 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMModuleRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef)jarg2; 
+  
+  arg3 = jarg3; 
+  
+  result = (LLVMValueRef)LLVMAddGlobal(arg1,arg2,(char const *)arg3);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetNamedGlobal (
+  void * jarg1
+  ,
+  
+  char * jarg2
+  )
+{
+  void * jresult ;
+  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
+  char *arg2 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMModuleRef)jarg1; 
+  
+  arg2 = jarg2; 
+  
+  result = (LLVMValueRef)LLVMGetNamedGlobal(arg1,(char const *)arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetFirstGlobal (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMModuleRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMGetFirstGlobal(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetLastGlobal (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMModuleRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMGetLastGlobal(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetNextGlobal (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMGetNextGlobal(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetPreviousGlobal (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMGetPreviousGlobal(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMDeleteGlobal (
+  void * jarg1
+  )
+{
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  LLVMDeleteGlobal(arg1);
+  
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetInitializer (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMGetInitializer(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMSetInitializer (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  LLVMSetInitializer(arg1,arg2);
+  
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMIsThreadLocal (
+  void * jarg1
+  )
+{
+  int jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  int result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (int)LLVMIsThreadLocal(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMSetThreadLocal (
+  void * jarg1
+  ,
+  
+  int jarg2
+  )
+{
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  int arg2 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  
+  arg2 = (int) jarg2; 
+  
+  
+  LLVMSetThreadLocal(arg1,arg2);
+  
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMIsGlobalConstant (
+  void * jarg1
+  )
+{
+  int jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  int result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (int)LLVMIsGlobalConstant(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMSetGlobalConstant (
+  void * jarg1
+  ,
+  
+  int jarg2
+  )
+{
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  int arg2 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  
+  arg2 = (int) jarg2; 
+  
+  
+  LLVMSetGlobalConstant(arg1,arg2);
+  
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMAddAlias (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
+  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMModuleRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef)jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMAddAlias(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMAddFunction (
+  void * jarg1
+  ,
+  
+  char * jarg2
+  ,
+  
+  void * jarg3
+  )
+{
+  void * jresult ;
+  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
+  char *arg2 = (char *) 0 ;
+  LLVMTypeRef arg3 = (LLVMTypeRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMModuleRef)jarg1; 
+  
+  arg2 = jarg2; 
+  
+  arg3 = (LLVMTypeRef)jarg3; 
+  
+  result = (LLVMValueRef)LLVMAddFunction(arg1,(char const *)arg2,arg3);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetNamedFunction (
+  void * jarg1
+  ,
+  
+  char * jarg2
+  )
+{
+  void * jresult ;
+  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
+  char *arg2 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMModuleRef)jarg1; 
+  
+  arg2 = jarg2; 
+  
+  result = (LLVMValueRef)LLVMGetNamedFunction(arg1,(char const *)arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetFirstFunction (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMModuleRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMGetFirstFunction(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetLastFunction (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMModuleRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMGetLastFunction(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetNextFunction (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMGetNextFunction(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetPreviousFunction (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMGetPreviousFunction(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMDeleteFunction (
+  void * jarg1
+  )
+{
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  LLVMDeleteFunction(arg1);
+  
+  
+}
+
+
+
+DllExport unsigned int SWIGSTDCALL Ada_LLVMGetIntrinsicID (
+  void * jarg1
+  )
+{
+  unsigned int jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  unsigned int result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (unsigned int)LLVMGetIntrinsicID(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport unsigned int SWIGSTDCALL Ada_LLVMGetFunctionCallConv (
+  void * jarg1
+  )
+{
+  unsigned int jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  unsigned int result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (unsigned int)LLVMGetFunctionCallConv(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMSetFunctionCallConv (
+  void * jarg1
+  ,
+  
+  unsigned int jarg2
+  )
+{
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  unsigned int arg2 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  
+  arg2 = (unsigned int) jarg2; 
+  
+  
+  LLVMSetFunctionCallConv(arg1,arg2);
+  
+  
+}
+
+
+
+DllExport char * SWIGSTDCALL Ada_LLVMGetGC (
+  void * jarg1
+  )
+{
+  char * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  char *result = 0 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (char *)LLVMGetGC(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMSetGC (
+  void * jarg1
+  ,
+  
+  char * jarg2
+  )
+{
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  char *arg2 = (char *) 0 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = jarg2; 
+  
+  LLVMSetGC(arg1,(char const *)arg2);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddFunctionAttr (
+  void * jarg1
+  ,
+  
+  int jarg2
+  )
+{
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMAttribute arg2 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMAttribute) jarg2; 
+  
+  LLVMAddFunctionAttr(arg1,arg2);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMRemoveFunctionAttr (
+  void * jarg1
+  ,
+  
+  int jarg2
+  )
+{
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMAttribute arg2 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMAttribute) jarg2; 
+  
+  LLVMRemoveFunctionAttr(arg1,arg2);
+  
+  
+}
+
+
+
+DllExport unsigned int SWIGSTDCALL Ada_LLVMCountParams (
+  void * jarg1
+  )
+{
+  unsigned int jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  unsigned int result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (unsigned int)LLVMCountParams(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMGetParams (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef *arg2 = (LLVMValueRef *) 0 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMValueRef *)jarg2; 
+  
+  LLVMGetParams(arg1,arg2);
+  
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetParam (
+  void * jarg1
+  ,
+  
+  unsigned int jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  unsigned int arg2 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  
+  arg2 = (unsigned int) jarg2; 
+  
+  
+  result = (LLVMValueRef)LLVMGetParam(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetParamParent (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMGetParamParent(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetFirstParam (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMGetFirstParam(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetLastParam (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMGetLastParam(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetNextParam (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMGetNextParam(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetPreviousParam (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMGetPreviousParam(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddAttribute (
+  void * jarg1
+  ,
+  
+  int jarg2
+  )
+{
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMAttribute arg2 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMAttribute) jarg2; 
+  
+  LLVMAddAttribute(arg1,arg2);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMRemoveAttribute (
+  void * jarg1
+  ,
+  
+  int jarg2
+  )
+{
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMAttribute arg2 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMAttribute) jarg2; 
+  
+  LLVMRemoveAttribute(arg1,arg2);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMSetParamAlignment (
+  void * jarg1
+  ,
+  
+  unsigned int jarg2
+  )
+{
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  unsigned int arg2 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  
+  arg2 = (unsigned int) jarg2; 
+  
+  
+  LLVMSetParamAlignment(arg1,arg2);
+  
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBasicBlockAsValue (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMBasicBlockRef arg1 = (LLVMBasicBlockRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBasicBlockRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMBasicBlockAsValue(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMValueIsBasicBlock (
+  void * jarg1
+  )
+{
+  int jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  int result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (int)LLVMValueIsBasicBlock(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMValueAsBasicBlock (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMBasicBlockRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMBasicBlockRef)LLVMValueAsBasicBlock(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetBasicBlockParent (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMBasicBlockRef arg1 = (LLVMBasicBlockRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBasicBlockRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMGetBasicBlockParent(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport unsigned int SWIGSTDCALL Ada_LLVMCountBasicBlocks (
+  void * jarg1
+  )
+{
+  unsigned int jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  unsigned int result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (unsigned int)LLVMCountBasicBlocks(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMGetBasicBlocks (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMBasicBlockRef *arg2 = (LLVMBasicBlockRef *) 0 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMBasicBlockRef *)jarg2; 
+  
+  LLVMGetBasicBlocks(arg1,arg2);
+  
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetFirstBasicBlock (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMBasicBlockRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMBasicBlockRef)LLVMGetFirstBasicBlock(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetLastBasicBlock (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMBasicBlockRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMBasicBlockRef)LLVMGetLastBasicBlock(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetNextBasicBlock (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMBasicBlockRef arg1 = (LLVMBasicBlockRef) 0 ;
+  LLVMBasicBlockRef result;
+  
+  arg1 = (LLVMBasicBlockRef)jarg1; 
+  
+  result = (LLVMBasicBlockRef)LLVMGetNextBasicBlock(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetPreviousBasicBlock (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMBasicBlockRef arg1 = (LLVMBasicBlockRef) 0 ;
+  LLVMBasicBlockRef result;
+  
+  arg1 = (LLVMBasicBlockRef)jarg1; 
+  
+  result = (LLVMBasicBlockRef)LLVMGetPreviousBasicBlock(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetEntryBasicBlock (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMBasicBlockRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMBasicBlockRef)LLVMGetEntryBasicBlock(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMAppendBasicBlock (
+  void * jarg1
+  ,
+  
+  char * jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  char *arg2 = (char *) 0 ;
+  LLVMBasicBlockRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = jarg2; 
+  
+  result = (LLVMBasicBlockRef)LLVMAppendBasicBlock(arg1,(char const *)arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMInsertBasicBlock (
+  void * jarg1
+  ,
+  
+  char * jarg2
+  )
+{
+  void * jresult ;
+  LLVMBasicBlockRef arg1 = (LLVMBasicBlockRef) 0 ;
+  char *arg2 = (char *) 0 ;
+  LLVMBasicBlockRef result;
+  
+  arg1 = (LLVMBasicBlockRef)jarg1; 
+  
+  arg2 = jarg2; 
+  
+  result = (LLVMBasicBlockRef)LLVMInsertBasicBlock(arg1,(char const *)arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMDeleteBasicBlock (
+  void * jarg1
+  )
+{
+  LLVMBasicBlockRef arg1 = (LLVMBasicBlockRef) 0 ;
+  
+  arg1 = (LLVMBasicBlockRef)jarg1; 
+  
+  LLVMDeleteBasicBlock(arg1);
+  
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetInstructionParent (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMBasicBlockRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMBasicBlockRef)LLVMGetInstructionParent(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetFirstInstruction (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMBasicBlockRef arg1 = (LLVMBasicBlockRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBasicBlockRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMGetFirstInstruction(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetLastInstruction (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMBasicBlockRef arg1 = (LLVMBasicBlockRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBasicBlockRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMGetLastInstruction(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetNextInstruction (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMGetNextInstruction(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetPreviousInstruction (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMGetPreviousInstruction(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMSetInstructionCallConv (
+  void * jarg1
+  ,
+  
+  unsigned int jarg2
+  )
+{
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  unsigned int arg2 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  
+  arg2 = (unsigned int) jarg2; 
+  
+  
+  LLVMSetInstructionCallConv(arg1,arg2);
+  
+  
+}
+
+
+
+DllExport unsigned int SWIGSTDCALL Ada_LLVMGetInstructionCallConv (
+  void * jarg1
+  )
+{
+  unsigned int jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  unsigned int result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (unsigned int)LLVMGetInstructionCallConv(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddInstrAttribute (
+  void * jarg1
+  ,
+  
+  unsigned int jarg2
+  ,
+  
+  int jarg3
+  )
+{
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  unsigned int arg2 ;
+  LLVMAttribute arg3 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  
+  arg2 = (unsigned int) jarg2; 
+  
+  
+  arg3 = (LLVMAttribute) jarg3; 
+  
+  LLVMAddInstrAttribute(arg1,arg2,arg3);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMRemoveInstrAttribute (
+  void * jarg1
+  ,
+  
+  unsigned int jarg2
+  ,
+  
+  int jarg3
+  )
+{
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  unsigned int arg2 ;
+  LLVMAttribute arg3 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  
+  arg2 = (unsigned int) jarg2; 
+  
+  
+  arg3 = (LLVMAttribute) jarg3; 
+  
+  LLVMRemoveInstrAttribute(arg1,arg2,arg3);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMSetInstrParamAlignment (
+  void * jarg1
+  ,
+  
+  unsigned int jarg2
+  ,
+  
+  unsigned int jarg3
+  )
+{
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  unsigned int arg2 ;
+  unsigned int arg3 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  
+  arg2 = (unsigned int) jarg2; 
+  
+  
+  
+  arg3 = (unsigned int) jarg3; 
+  
+  
+  LLVMSetInstrParamAlignment(arg1,arg2,arg3);
+  
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMIsTailCall (
+  void * jarg1
+  )
+{
+  int jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  int result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (int)LLVMIsTailCall(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMSetTailCall (
+  void * jarg1
+  ,
+  
+  int jarg2
+  )
+{
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  int arg2 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  
+  arg2 = (int) jarg2; 
+  
+  
+  LLVMSetTailCall(arg1,arg2);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddIncoming (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  unsigned int jarg4
+  )
+{
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef *arg2 = (LLVMValueRef *) 0 ;
+  LLVMBasicBlockRef *arg3 = (LLVMBasicBlockRef *) 0 ;
+  unsigned int arg4 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMValueRef *)jarg2; 
+  
+  arg3 = (LLVMBasicBlockRef *)jarg3; 
+  
+  
+  arg4 = (unsigned int) jarg4; 
+  
+  
+  LLVMAddIncoming(arg1,arg2,arg3,arg4);
+  
+  
+}
+
+
+
+DllExport unsigned int SWIGSTDCALL Ada_LLVMCountIncoming (
+  void * jarg1
+  )
+{
+  unsigned int jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  unsigned int result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  result = (unsigned int)LLVMCountIncoming(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetIncomingValue (
+  void * jarg1
+  ,
+  
+  unsigned int jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  unsigned int arg2 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  
+  arg2 = (unsigned int) jarg2; 
+  
+  
+  result = (LLVMValueRef)LLVMGetIncomingValue(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetIncomingBlock (
+  void * jarg1
+  ,
+  
+  unsigned int jarg2
+  )
+{
+  void * jresult ;
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  unsigned int arg2 ;
+  LLVMBasicBlockRef result;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  
+  arg2 = (unsigned int) jarg2; 
+  
+  
+  result = (LLVMBasicBlockRef)LLVMGetIncomingBlock(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMCreateBuilder (
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef result;
+  
+  result = (LLVMBuilderRef)LLVMCreateBuilder();
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMPositionBuilder (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  )
+{
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMBasicBlockRef arg2 = (LLVMBasicBlockRef) 0 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMBasicBlockRef)jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  LLVMPositionBuilder(arg1,arg2,arg3);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMPositionBuilderBefore (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  LLVMPositionBuilderBefore(arg1,arg2);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMPositionBuilderAtEnd (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMBasicBlockRef arg2 = (LLVMBasicBlockRef) 0 ;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMBasicBlockRef)jarg2; 
+  
+  LLVMPositionBuilderAtEnd(arg1,arg2);
+  
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMGetInsertBlock (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMBasicBlockRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  result = (LLVMBasicBlockRef)LLVMGetInsertBlock(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMClearInsertionPosition (
+  void * jarg1
+  )
+{
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  LLVMClearInsertionPosition(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMInsertIntoBuilder (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  LLVMInsertIntoBuilder(arg1,arg2);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMDisposeBuilder (
+  void * jarg1
+  )
+{
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  LLVMDisposeBuilder(arg1);
+  
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildRetVoid (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMBuildRetVoid(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildRet (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  result = (LLVMValueRef)LLVMBuildRet(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildBr (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMBasicBlockRef arg2 = (LLVMBasicBlockRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMBasicBlockRef)jarg2; 
+  
+  result = (LLVMValueRef)LLVMBuildBr(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildCondBr (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  void * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMBasicBlockRef arg3 = (LLVMBasicBlockRef) 0 ;
+  LLVMBasicBlockRef arg4 = (LLVMBasicBlockRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMBasicBlockRef)jarg3; 
+  
+  arg4 = (LLVMBasicBlockRef)jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildCondBr(arg1,arg2,arg3,arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildSwitch (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  unsigned int jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMBasicBlockRef arg3 = (LLVMBasicBlockRef) 0 ;
+  unsigned int arg4 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMBasicBlockRef)jarg3; 
+  
+  
+  arg4 = (unsigned int) jarg4; 
+  
+  
+  result = (LLVMValueRef)LLVMBuildSwitch(arg1,arg2,arg3,arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildInvoke (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  unsigned int jarg4
+  ,
+  
+  void * jarg5
+  ,
+  
+  void * jarg6
+  ,
+  
+  char * jarg7
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef *arg3 = (LLVMValueRef *) 0 ;
+  unsigned int arg4 ;
+  LLVMBasicBlockRef arg5 = (LLVMBasicBlockRef) 0 ;
+  LLVMBasicBlockRef arg6 = (LLVMBasicBlockRef) 0 ;
+  char *arg7 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMValueRef *)jarg3; 
+  
+  
+  arg4 = (unsigned int) jarg4; 
+  
+  
+  arg5 = (LLVMBasicBlockRef)jarg5; 
+  
+  arg6 = (LLVMBasicBlockRef)jarg6; 
+  
+  arg7 = jarg7; 
+  
+  result = (LLVMValueRef)LLVMBuildInvoke(arg1,arg2,arg3,arg4,arg5,arg6,(char const *)arg7);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildUnwind (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMBuildUnwind(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildUnreachable (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  result = (LLVMValueRef)LLVMBuildUnreachable(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddCase (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  )
+{
+  LLVMValueRef arg1 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMBasicBlockRef arg3 = (LLVMBasicBlockRef) 0 ;
+  
+  arg1 = (LLVMValueRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMBasicBlockRef)jarg3; 
+  
+  LLVMAddCase(arg1,arg2,arg3);
+  
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildAdd (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildAdd(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildSub (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildSub(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildMul (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildMul(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildUDiv (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildUDiv(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildSDiv (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildSDiv(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildFDiv (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildFDiv(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildURem (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildURem(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildSRem (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildSRem(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildFRem (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildFRem(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildShl (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildShl(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildLShr (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildLShr(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildAShr (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildAShr(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildAnd (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildAnd(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildOr (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildOr(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildXor (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildXor(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildNeg (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  char * jarg3
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  char *arg3 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = jarg3; 
+  
+  result = (LLVMValueRef)LLVMBuildNeg(arg1,arg2,(char const *)arg3);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildNot (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  char * jarg3
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  char *arg3 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = jarg3; 
+  
+  result = (LLVMValueRef)LLVMBuildNot(arg1,arg2,(char const *)arg3);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildMalloc (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  char * jarg3
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
+  char *arg3 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef)jarg2; 
+  
+  arg3 = jarg3; 
+  
+  result = (LLVMValueRef)LLVMBuildMalloc(arg1,arg2,(char const *)arg3);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildArrayMalloc (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef)jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildArrayMalloc(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildAlloca (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  char * jarg3
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
+  char *arg3 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef)jarg2; 
+  
+  arg3 = jarg3; 
+  
+  result = (LLVMValueRef)LLVMBuildAlloca(arg1,arg2,(char const *)arg3);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildArrayAlloca (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef)jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildArrayAlloca(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildFree (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  result = (LLVMValueRef)LLVMBuildFree(arg1,arg2);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildLoad (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  char * jarg3
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  char *arg3 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = jarg3; 
+  
+  result = (LLVMValueRef)LLVMBuildLoad(arg1,arg2,(char const *)arg3);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildStore (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  result = (LLVMValueRef)LLVMBuildStore(arg1,arg2,arg3);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildGEP (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  unsigned int jarg4
+  ,
+  
+  char * jarg5
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef *arg3 = (LLVMValueRef *) 0 ;
+  unsigned int arg4 ;
+  char *arg5 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMValueRef *)jarg3; 
+  
+  
+  arg4 = (unsigned int) jarg4; 
+  
+  
+  arg5 = jarg5; 
+  
+  result = (LLVMValueRef)LLVMBuildGEP(arg1,arg2,arg3,arg4,(char const *)arg5);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildTrunc (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMTypeRef arg3 = (LLVMTypeRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMTypeRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildTrunc(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildZExt (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMTypeRef arg3 = (LLVMTypeRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMTypeRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildZExt(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildSExt (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMTypeRef arg3 = (LLVMTypeRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMTypeRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildSExt(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildFPToUI (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMTypeRef arg3 = (LLVMTypeRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMTypeRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildFPToUI(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildFPToSI (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMTypeRef arg3 = (LLVMTypeRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMTypeRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildFPToSI(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildUIToFP (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMTypeRef arg3 = (LLVMTypeRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMTypeRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildUIToFP(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildSIToFP (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMTypeRef arg3 = (LLVMTypeRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMTypeRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildSIToFP(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildFPTrunc (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMTypeRef arg3 = (LLVMTypeRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMTypeRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildFPTrunc(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildFPExt (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMTypeRef arg3 = (LLVMTypeRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMTypeRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildFPExt(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildPtrToInt (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMTypeRef arg3 = (LLVMTypeRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMTypeRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildPtrToInt(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildIntToPtr (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMTypeRef arg3 = (LLVMTypeRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMTypeRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildIntToPtr(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildBitCast (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMTypeRef arg3 = (LLVMTypeRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMTypeRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildBitCast(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildICmp (
+  void * jarg1
+  ,
+  
+  int jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  void * jarg4
+  ,
+  
+  char * jarg5
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMIntPredicate arg2 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg4 = (LLVMValueRef) 0 ;
+  char *arg5 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMIntPredicate) jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  arg4 = (LLVMValueRef)jarg4; 
+  
+  arg5 = jarg5; 
+  
+  result = (LLVMValueRef)LLVMBuildICmp(arg1,arg2,arg3,arg4,(char const *)arg5);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildFCmp (
+  void * jarg1
+  ,
+  
+  int jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  void * jarg4
+  ,
+  
+  char * jarg5
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMRealPredicate arg2 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg4 = (LLVMValueRef) 0 ;
+  char *arg5 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMRealPredicate) jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  arg4 = (LLVMValueRef)jarg4; 
+  
+  arg5 = jarg5; 
+  
+  result = (LLVMValueRef)LLVMBuildFCmp(arg1,arg2,arg3,arg4,(char const *)arg5);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildPhi (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  char * jarg3
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
+  char *arg3 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef)jarg2; 
+  
+  arg3 = jarg3; 
+  
+  result = (LLVMValueRef)LLVMBuildPhi(arg1,arg2,(char const *)arg3);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildCall (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  unsigned int jarg4
+  ,
+  
+  char * jarg5
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef *arg3 = (LLVMValueRef *) 0 ;
+  unsigned int arg4 ;
+  char *arg5 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMValueRef *)jarg3; 
+  
+  
+  arg4 = (unsigned int) jarg4; 
+  
+  
+  arg5 = jarg5; 
+  
+  result = (LLVMValueRef)LLVMBuildCall(arg1,arg2,arg3,arg4,(char const *)arg5);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildSelect (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  void * jarg4
+  ,
+  
+  char * jarg5
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg4 = (LLVMValueRef) 0 ;
+  char *arg5 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  arg4 = (LLVMValueRef)jarg4; 
+  
+  arg5 = jarg5; 
+  
+  result = (LLVMValueRef)LLVMBuildSelect(arg1,arg2,arg3,arg4,(char const *)arg5);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildVAArg (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMTypeRef arg3 = (LLVMTypeRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMTypeRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildVAArg(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildExtractElement (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildExtractElement(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildInsertElement (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  void * jarg4
+  ,
+  
+  char * jarg5
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg4 = (LLVMValueRef) 0 ;
+  char *arg5 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  arg4 = (LLVMValueRef)jarg4; 
+  
+  arg5 = jarg5; 
+  
+  result = (LLVMValueRef)LLVMBuildInsertElement(arg1,arg2,arg3,arg4,(char const *)arg5);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildShuffleVector (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  void * jarg4
+  ,
+  
+  char * jarg5
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg4 = (LLVMValueRef) 0 ;
+  char *arg5 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  arg4 = (LLVMValueRef)jarg4; 
+  
+  arg5 = jarg5; 
+  
+  result = (LLVMValueRef)LLVMBuildShuffleVector(arg1,arg2,arg3,arg4,(char const *)arg5);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildExtractValue (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  unsigned int jarg3
+  ,
+  
+  char * jarg4
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  unsigned int arg3 ;
+  char *arg4 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  
+  arg3 = (unsigned int) jarg3; 
+  
+  
+  arg4 = jarg4; 
+  
+  result = (LLVMValueRef)LLVMBuildExtractValue(arg1,arg2,arg3,(char const *)arg4);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMBuildInsertValue (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  ,
+  
+  unsigned int jarg4
+  ,
+  
+  char * jarg5
+  )
+{
+  void * jresult ;
+  LLVMBuilderRef arg1 = (LLVMBuilderRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  LLVMValueRef arg3 = (LLVMValueRef) 0 ;
+  unsigned int arg4 ;
+  char *arg5 = (char *) 0 ;
+  LLVMValueRef result;
+  
+  arg1 = (LLVMBuilderRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  arg3 = (LLVMValueRef)jarg3; 
+  
+  
+  arg4 = (unsigned int) jarg4; 
+  
+  
+  arg5 = jarg5; 
+  
+  result = (LLVMValueRef)LLVMBuildInsertValue(arg1,arg2,arg3,arg4,(char const *)arg5);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMCreateModuleProviderForExistingModule (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMModuleRef arg1 = (LLVMModuleRef) 0 ;
+  LLVMModuleProviderRef result;
+  
+  arg1 = (LLVMModuleRef)jarg1; 
+  
+  result = (LLVMModuleProviderRef)LLVMCreateModuleProviderForExistingModule(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMDisposeModuleProvider (
+  void * jarg1
+  )
+{
+  LLVMModuleProviderRef arg1 = (LLVMModuleProviderRef) 0 ;
+  
+  arg1 = (LLVMModuleProviderRef)jarg1; 
+  
+  LLVMDisposeModuleProvider(arg1);
+  
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMCreateMemoryBufferWithContentsOfFile (
+  char * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  void * jarg3
+  )
+{
+  int jresult ;
+  char *arg1 = (char *) 0 ;
+  LLVMMemoryBufferRef *arg2 = (LLVMMemoryBufferRef *) 0 ;
+  char **arg3 = (char **) 0 ;
+  int result;
+  
+  arg1 = jarg1; 
+  
+  arg2 = (LLVMMemoryBufferRef *)jarg2; 
+  
+  arg3 = (char **)jarg3; 
+  
+  result = (int)LLVMCreateMemoryBufferWithContentsOfFile((char const *)arg1,arg2,arg3);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMCreateMemoryBufferWithSTDIN (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  int jresult ;
+  LLVMMemoryBufferRef *arg1 = (LLVMMemoryBufferRef *) 0 ;
+  char **arg2 = (char **) 0 ;
+  int result;
+  
+  arg1 = (LLVMMemoryBufferRef *)jarg1; 
+  
+  arg2 = (char **)jarg2; 
+  
+  result = (int)LLVMCreateMemoryBufferWithSTDIN(arg1,arg2);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMDisposeMemoryBuffer (
+  void * jarg1
+  )
+{
+  LLVMMemoryBufferRef arg1 = (LLVMMemoryBufferRef) 0 ;
+  
+  arg1 = (LLVMMemoryBufferRef)jarg1; 
+  
+  LLVMDisposeMemoryBuffer(arg1);
+  
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMCreatePassManager (
+  )
+{
+  void * jresult ;
+  LLVMPassManagerRef result;
+  
+  result = (LLVMPassManagerRef)LLVMCreatePassManager();
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMCreateFunctionPassManager (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMModuleProviderRef arg1 = (LLVMModuleProviderRef) 0 ;
+  LLVMPassManagerRef result;
+  
+  arg1 = (LLVMModuleProviderRef)jarg1; 
+  
+  result = (LLVMPassManagerRef)LLVMCreateFunctionPassManager(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMRunPassManager (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  int jresult ;
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  LLVMModuleRef arg2 = (LLVMModuleRef) 0 ;
+  int result;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  arg2 = (LLVMModuleRef)jarg2; 
+  
+  result = (int)LLVMRunPassManager(arg1,arg2);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMInitializeFunctionPassManager (
+  void * jarg1
+  )
+{
+  int jresult ;
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  int result;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  result = (int)LLVMInitializeFunctionPassManager(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMRunFunctionPassManager (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  int jresult ;
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  int result;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  result = (int)LLVMRunFunctionPassManager(arg1,arg2);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMFinalizeFunctionPassManager (
+  void * jarg1
+  )
+{
+  int jresult ;
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  int result;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  result = (int)LLVMFinalizeFunctionPassManager(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMDisposePassManager (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMDisposePassManager(arg1);
+  
+  
+}
+
+
+
+#ifdef __cplusplus
+}
+#endif
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+

Added: llvm/trunk/bindings/ada/target/llvm_target-binding.ads
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ada/target/llvm_target-binding.ads?rev=79295&view=auto

==============================================================================
--- llvm/trunk/bindings/ada/target/llvm_target-binding.ads (added)
+++ llvm/trunk/bindings/ada/target/llvm_target-binding.ads Mon Aug 17 19:24:36 2009
@@ -0,0 +1,138 @@
+-- This file is generated by SWIG. Do *not* modify by hand.
+--
+
+with llvm;
+with Interfaces.C.Strings;
+
+
+package LLVM_Target.Binding is
+
+   LLVMBigEndian    : constant := 0;
+   LLVMLittleEndian : constant := 1;
+
+   procedure LLVMInitializeAllTargets;
+
+   function LLVMInitializeNativeTarget return  Interfaces.C.int;
+
+   function LLVMCreateTargetData
+     (StringRep : in Interfaces.C.Strings.chars_ptr)
+      return      LLVM_Target.LLVMTargetDataRef;
+
+   procedure LLVMAddTargetData
+     (arg_2_1 : in LLVM_Target.LLVMTargetDataRef;
+      arg_2_2 : in llvm.LLVMPassManagerRef);
+
+   function LLVMCopyStringRepOfTargetData
+     (arg_1 : in LLVM_Target.LLVMTargetDataRef)
+      return  Interfaces.C.Strings.chars_ptr;
+
+   function LLVMByteOrder
+     (arg_1 : in LLVM_Target.LLVMTargetDataRef)
+      return  LLVM_Target.LLVMByteOrdering;
+
+   function LLVMPointerSize
+     (arg_1 : in LLVM_Target.LLVMTargetDataRef)
+      return  Interfaces.C.unsigned;
+
+   function LLVMIntPtrType
+     (arg_1 : in LLVM_Target.LLVMTargetDataRef)
+      return  llvm.LLVMTypeRef;
+
+   function LLVMSizeOfTypeInBits
+     (arg_2_1 : in LLVM_Target.LLVMTargetDataRef;
+      arg_2_2 : in llvm.LLVMTypeRef)
+      return    Interfaces.C.Extensions.unsigned_long_long;
+
+   function LLVMStoreSizeOfType
+     (arg_2_1 : in LLVM_Target.LLVMTargetDataRef;
+      arg_2_2 : in llvm.LLVMTypeRef)
+      return    Interfaces.C.Extensions.unsigned_long_long;
+
+   function LLVMABISizeOfType
+     (arg_2_1 : in LLVM_Target.LLVMTargetDataRef;
+      arg_2_2 : in llvm.LLVMTypeRef)
+      return    Interfaces.C.Extensions.unsigned_long_long;
+
+   function LLVMABIAlignmentOfType
+     (arg_2_1 : in LLVM_Target.LLVMTargetDataRef;
+      arg_2_2 : in llvm.LLVMTypeRef)
+      return    Interfaces.C.unsigned;
+
+   function LLVMCallFrameAlignmentOfType
+     (arg_2_1 : in LLVM_Target.LLVMTargetDataRef;
+      arg_2_2 : in llvm.LLVMTypeRef)
+      return    Interfaces.C.unsigned;
+
+   function LLVMPreferredAlignmentOfType
+     (arg_2_1 : in LLVM_Target.LLVMTargetDataRef;
+      arg_2_2 : in llvm.LLVMTypeRef)
+      return    Interfaces.C.unsigned;
+
+   function LLVMPreferredAlignmentOfGlobal
+     (arg_1     : in LLVM_Target.LLVMTargetDataRef;
+      GlobalVar : in llvm.LLVMValueRef)
+      return      Interfaces.C.unsigned;
+
+   function LLVMElementAtOffset
+     (arg_1    : in LLVM_Target.LLVMTargetDataRef;
+      StructTy : in llvm.LLVMTypeRef;
+      Offset   : in Interfaces.C.Extensions.unsigned_long_long)
+      return     Interfaces.C.unsigned;
+
+   function LLVMOffsetOfElement
+     (arg_1    : in LLVM_Target.LLVMTargetDataRef;
+      StructTy : in llvm.LLVMTypeRef;
+      Element  : in Interfaces.C.unsigned)
+      return     Interfaces.C.Extensions.unsigned_long_long;
+
+   procedure LLVMInvalidateStructLayout
+     (arg_1    : in LLVM_Target.LLVMTargetDataRef;
+      StructTy : in llvm.LLVMTypeRef);
+
+   procedure LLVMDisposeTargetData
+     (arg_1 : in LLVM_Target.LLVMTargetDataRef);
+
+private
+
+   pragma Import
+     (C,
+      LLVMInitializeAllTargets,
+      "Ada_LLVMInitializeAllTargets");
+   pragma Import
+     (C,
+      LLVMInitializeNativeTarget,
+      "Ada_LLVMInitializeNativeTarget");
+   pragma Import (C, LLVMCreateTargetData, "Ada_LLVMCreateTargetData");
+   pragma Import (C, LLVMAddTargetData, "Ada_LLVMAddTargetData");
+   pragma Import
+     (C,
+      LLVMCopyStringRepOfTargetData,
+      "Ada_LLVMCopyStringRepOfTargetData");
+   pragma Import (C, LLVMByteOrder, "Ada_LLVMByteOrder");
+   pragma Import (C, LLVMPointerSize, "Ada_LLVMPointerSize");
+   pragma Import (C, LLVMIntPtrType, "Ada_LLVMIntPtrType");
+   pragma Import (C, LLVMSizeOfTypeInBits, "Ada_LLVMSizeOfTypeInBits");
+   pragma Import (C, LLVMStoreSizeOfType, "Ada_LLVMStoreSizeOfType");
+   pragma Import (C, LLVMABISizeOfType, "Ada_LLVMABISizeOfType");
+   pragma Import (C, LLVMABIAlignmentOfType, "Ada_LLVMABIAlignmentOfType");
+   pragma Import
+     (C,
+      LLVMCallFrameAlignmentOfType,
+      "Ada_LLVMCallFrameAlignmentOfType");
+   pragma Import
+     (C,
+      LLVMPreferredAlignmentOfType,
+      "Ada_LLVMPreferredAlignmentOfType");
+   pragma Import
+     (C,
+      LLVMPreferredAlignmentOfGlobal,
+      "Ada_LLVMPreferredAlignmentOfGlobal");
+   pragma Import (C, LLVMElementAtOffset, "Ada_LLVMElementAtOffset");
+   pragma Import (C, LLVMOffsetOfElement, "Ada_LLVMOffsetOfElement");
+   pragma Import
+     (C,
+      LLVMInvalidateStructLayout,
+      "Ada_LLVMInvalidateStructLayout");
+   pragma Import (C, LLVMDisposeTargetData, "Ada_LLVMDisposeTargetData");
+
+end LLVM_Target.Binding;

Added: llvm/trunk/bindings/ada/target/llvm_target.ads
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ada/target/llvm_target.ads?rev=79295&view=auto

==============================================================================
--- llvm/trunk/bindings/ada/target/llvm_target.ads (added)
+++ llvm/trunk/bindings/ada/target/llvm_target.ads Mon Aug 17 19:24:36 2009
@@ -0,0 +1,72 @@
+-- This file is generated by SWIG. Do *not* modify by hand.
+--
+
+with Interfaces.C.Extensions;
+
+
+package LLVM_Target is
+
+   -- LLVMOpaqueTargetData
+   --
+   type LLVMOpaqueTargetData is new
+     Interfaces.C.Extensions.opaque_structure_def;
+
+   type LLVMOpaqueTargetData_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased LLVM_Target.LLVMOpaqueTargetData;
+
+   type LLVMOpaqueTargetData_view is access all
+     LLVM_Target.LLVMOpaqueTargetData;
+
+   -- LLVMTargetDataRef
+   --
+   type LLVMTargetDataRef is access all LLVM_Target.LLVMOpaqueTargetData;
+
+   type LLVMTargetDataRef_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased LLVM_Target.LLVMTargetDataRef;
+
+   type LLVMTargetDataRef_view is access all LLVM_Target.LLVMTargetDataRef;
+
+   -- LLVMStructLayout
+   --
+   type LLVMStructLayout is new Interfaces.C.Extensions.opaque_structure_def;
+
+   type LLVMStructLayout_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased LLVM_Target.LLVMStructLayout;
+
+   type LLVMStructLayout_view is access all LLVM_Target.LLVMStructLayout;
+
+   -- LLVMStructLayoutRef
+   --
+   type LLVMStructLayoutRef is access all LLVM_Target.LLVMStructLayout;
+
+   type LLVMStructLayoutRef_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased LLVM_Target.LLVMStructLayoutRef;
+
+   type LLVMStructLayoutRef_view is access all LLVM_Target.LLVMStructLayoutRef;
+
+   -- TargetData
+   --
+   type TargetData is new Interfaces.C.Extensions.incomplete_class_def;
+
+   type TargetData_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased LLVM_Target.TargetData;
+
+   type TargetData_view is access all LLVM_Target.TargetData;
+
+   -- LLVMByteOrdering
+   --
+   type LLVMByteOrdering is new Interfaces.C.int;
+
+   type LLVMByteOrdering_array is
+     array (Interfaces.C.size_t range <>)
+            of aliased LLVM_Target.LLVMByteOrdering;
+
+   type LLVMByteOrdering_view is access all LLVM_Target.LLVMByteOrdering;
+
+
+end LLVM_Target;

Added: llvm/trunk/bindings/ada/target/llvm_target_wrap.cxx
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ada/target/llvm_target_wrap.cxx?rev=79295&view=auto

==============================================================================
--- llvm/trunk/bindings/ada/target/llvm_target_wrap.cxx (added)
+++ llvm/trunk/bindings/ada/target/llvm_target_wrap.cxx Mon Aug 17 19:24:36 2009
@@ -0,0 +1,720 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 1.3.36
+ * 
+ * This file is not intended to be easily readable and contains a number of 
+ * coding conventions designed to improve portability and efficiency. Do not make
+ * changes to this file unless you know what you are doing--modify the SWIG 
+ * interface file instead. 
+ * ----------------------------------------------------------------------------- */
+
+
+#ifdef __cplusplus
+template<typename T> class SwigValueWrapper {
+    T *tt;
+public:
+    SwigValueWrapper() : tt(0) { }
+    SwigValueWrapper(const SwigValueWrapper<T>& rhs) : tt(new T(*rhs.tt)) { }
+    SwigValueWrapper(const T& t) : tt(new T(t)) { }
+    ~SwigValueWrapper() { delete tt; } 
+    SwigValueWrapper& operator=(const T& t) { delete tt; tt = new T(t); return *this; }
+    operator T&() const { return *tt; }
+    T *operator&() { return tt; }
+private:
+    SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
+};
+
+template <typename T> T SwigValueInit() {
+  return T();
+}
+#endif
+
+/* -----------------------------------------------------------------------------
+ *  This section contains generic SWIG labels for method/variable
+ *  declarations/attributes, and other compiler dependent labels.
+ * ----------------------------------------------------------------------------- */
+
+/* template workaround for compilers that cannot correctly implement the C++ standard */
+#ifndef SWIGTEMPLATEDISAMBIGUATOR
+# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
+#  define SWIGTEMPLATEDISAMBIGUATOR template
+# elif defined(__HP_aCC)
+/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
+/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
+#  define SWIGTEMPLATEDISAMBIGUATOR template
+# else
+#  define SWIGTEMPLATEDISAMBIGUATOR
+# endif
+#endif
+
+/* inline attribute */
+#ifndef SWIGINLINE
+# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
+#   define SWIGINLINE inline
+# else
+#   define SWIGINLINE
+# endif
+#endif
+
+/* attribute recognised by some compilers to avoid 'unused' warnings */
+#ifndef SWIGUNUSED
+# if defined(__GNUC__)
+#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
+#     define SWIGUNUSED __attribute__ ((__unused__)) 
+#   else
+#     define SWIGUNUSED
+#   endif
+# elif defined(__ICC)
+#   define SWIGUNUSED __attribute__ ((__unused__)) 
+# else
+#   define SWIGUNUSED 
+# endif
+#endif
+
+#ifndef SWIGUNUSEDPARM
+# ifdef __cplusplus
+#   define SWIGUNUSEDPARM(p)
+# else
+#   define SWIGUNUSEDPARM(p) p SWIGUNUSED 
+# endif
+#endif
+
+/* internal SWIG method */
+#ifndef SWIGINTERN
+# define SWIGINTERN static SWIGUNUSED
+#endif
+
+/* internal inline SWIG method */
+#ifndef SWIGINTERNINLINE
+# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
+#endif
+
+/* exporting methods */
+#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+#  ifndef GCC_HASCLASSVISIBILITY
+#    define GCC_HASCLASSVISIBILITY
+#  endif
+#endif
+
+#ifndef SWIGEXPORT
+# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+#   if defined(STATIC_LINKED)
+#     define SWIGEXPORT
+#   else
+#     define SWIGEXPORT __declspec(dllexport)
+#   endif
+# else
+#   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
+#     define SWIGEXPORT __attribute__ ((visibility("default")))
+#   else
+#     define SWIGEXPORT
+#   endif
+# endif
+#endif
+
+/* calling conventions for Windows */
+#ifndef SWIGSTDCALL
+# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+#   define SWIGSTDCALL __stdcall
+# else
+#   define SWIGSTDCALL
+# endif 
+#endif
+
+/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
+#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
+# define _CRT_SECURE_NO_DEPRECATE
+#endif
+
+/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
+#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
+# define _SCL_SECURE_NO_DEPRECATE
+#endif
+
+
+
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#if defined(_WIN32) || defined(__CYGWIN32__)
+#  define DllExport   __declspec( dllexport )
+#  define SWIGSTDCALL __stdcall
+#else
+#  define DllExport  
+#  define SWIGSTDCALL
+#endif 
+
+
+#ifdef __cplusplus
+#  include <new>
+#endif
+
+
+
+
+/* Support for throwing Ada exceptions from C/C++ */
+
+typedef enum 
+{
+  SWIG_AdaException,
+  SWIG_AdaOutOfMemoryException,
+  SWIG_AdaIndexOutOfRangeException,
+  SWIG_AdaDivideByZeroException,
+  SWIG_AdaArgumentOutOfRangeException,
+  SWIG_AdaNullReferenceException
+} SWIG_AdaExceptionCodes;
+
+
+typedef void (SWIGSTDCALL* SWIG_AdaExceptionCallback_t)(const char *);
+
+
+typedef struct 
+{
+  SWIG_AdaExceptionCodes code;
+  SWIG_AdaExceptionCallback_t callback;
+} 
+  SWIG_AdaExceptions_t;
+
+
+static 
+SWIG_AdaExceptions_t 
+SWIG_ada_exceptions[] = 
+{
+  { SWIG_AdaException, NULL },
+  { SWIG_AdaOutOfMemoryException, NULL },
+  { SWIG_AdaIndexOutOfRangeException, NULL },
+  { SWIG_AdaDivideByZeroException, NULL },
+  { SWIG_AdaArgumentOutOfRangeException, NULL },
+  { SWIG_AdaNullReferenceException, NULL } 
+};
+
+
+static 
+void 
+SWIG_AdaThrowException (SWIG_AdaExceptionCodes code, const char *msg) 
+{
+  SWIG_AdaExceptionCallback_t callback = SWIG_ada_exceptions[SWIG_AdaException].callback;
+  if (code >=0 && (size_t)code < sizeof(SWIG_ada_exceptions)/sizeof(SWIG_AdaExceptions_t)) {
+    callback = SWIG_ada_exceptions[code].callback;
+  }
+  callback(msg);
+}
+
+
+
+#ifdef __cplusplus
+extern "C" 
+#endif
+
+DllExport void SWIGSTDCALL SWIGRegisterExceptionCallbacks_LLVM_Target (SWIG_AdaExceptionCallback_t systemException,
+                                                                   SWIG_AdaExceptionCallback_t outOfMemory, 
+                                                                   SWIG_AdaExceptionCallback_t indexOutOfRange, 
+                                                                   SWIG_AdaExceptionCallback_t divideByZero, 
+                                                                   SWIG_AdaExceptionCallback_t argumentOutOfRange,
+                                                                   SWIG_AdaExceptionCallback_t nullReference) 
+{
+  SWIG_ada_exceptions [SWIG_AdaException].callback                   = systemException;
+  SWIG_ada_exceptions [SWIG_AdaOutOfMemoryException].callback        = outOfMemory;
+  SWIG_ada_exceptions [SWIG_AdaIndexOutOfRangeException].callback    = indexOutOfRange;
+  SWIG_ada_exceptions [SWIG_AdaDivideByZeroException].callback       = divideByZero;
+  SWIG_ada_exceptions [SWIG_AdaArgumentOutOfRangeException].callback = argumentOutOfRange;
+  SWIG_ada_exceptions [SWIG_AdaNullReferenceException].callback      = nullReference;
+}
+
+
+/* Callback for returning strings to Ada without leaking memory */
+
+typedef char * (SWIGSTDCALL* SWIG_AdaStringHelperCallback)(const char *);
+static SWIG_AdaStringHelperCallback SWIG_ada_string_callback = NULL;
+
+
+
+/* probably obsolete ...
+#ifdef __cplusplus
+extern "C" 
+#endif
+DllExport void SWIGSTDCALL SWIGRegisterStringCallback_LLVM_Target(SWIG_AdaStringHelperCallback callback) {
+  SWIG_ada_string_callback = callback;
+}
+*/
+
+
+
+/* Contract support */
+
+#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_AdaThrowException(SWIG_AdaArgumentOutOfRangeException, msg); return nullreturn; } else
+
+
+#define protected public
+#define private   public
+
+#include "llvm-c/Target.h"
+
+
+
+//  struct LLVMCtxt;
+
+
+#undef protected
+#undef private
+#ifdef __cplusplus 
+extern "C" {
+#endif
+DllExport void SWIGSTDCALL Ada_LLVMInitializeAllTargets (
+  )
+{
+  LLVMInitializeAllTargets();
+  
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMInitializeNativeTarget (
+  )
+{
+  int jresult ;
+  int result;
+  
+  result = (int)LLVMInitializeNativeTarget();
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMCreateTargetData (
+  char * jarg1
+  )
+{
+  void * jresult ;
+  char *arg1 = (char *) 0 ;
+  LLVMTargetDataRef result;
+  
+  arg1 = jarg1; 
+  
+  result = (LLVMTargetDataRef)LLVMCreateTargetData((char const *)arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddTargetData (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
+  LLVMPassManagerRef arg2 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMTargetDataRef)jarg1; 
+  
+  arg2 = (LLVMPassManagerRef)jarg2; 
+  
+  LLVMAddTargetData(arg1,arg2);
+  
+  
+}
+
+
+
+DllExport char * SWIGSTDCALL Ada_LLVMCopyStringRepOfTargetData (
+  void * jarg1
+  )
+{
+  char * jresult ;
+  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
+  char *result = 0 ;
+  
+  arg1 = (LLVMTargetDataRef)jarg1; 
+  
+  result = (char *)LLVMCopyStringRepOfTargetData(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport int SWIGSTDCALL Ada_LLVMByteOrder (
+  void * jarg1
+  )
+{
+  int jresult ;
+  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
+  LLVMByteOrdering result;
+  
+  arg1 = (LLVMTargetDataRef)jarg1; 
+  
+  result = (LLVMByteOrdering)LLVMByteOrder(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport unsigned int SWIGSTDCALL Ada_LLVMPointerSize (
+  void * jarg1
+  )
+{
+  unsigned int jresult ;
+  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
+  unsigned int result;
+  
+  arg1 = (LLVMTargetDataRef)jarg1; 
+  
+  result = (unsigned int)LLVMPointerSize(arg1);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void * SWIGSTDCALL Ada_LLVMIntPtrType (
+  void * jarg1
+  )
+{
+  void * jresult ;
+  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
+  LLVMTypeRef result;
+  
+  arg1 = (LLVMTargetDataRef)jarg1; 
+  
+  result = (LLVMTypeRef)LLVMIntPtrType(arg1);
+  jresult = (void *) result;      
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport unsigned long long SWIGSTDCALL Ada_LLVMSizeOfTypeInBits (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  unsigned long long jresult ;
+  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
+  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
+  unsigned long long result;
+  
+  arg1 = (LLVMTargetDataRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef)jarg2; 
+  
+  result = (unsigned long long)LLVMSizeOfTypeInBits(arg1,arg2);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport unsigned long long SWIGSTDCALL Ada_LLVMStoreSizeOfType (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  unsigned long long jresult ;
+  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
+  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
+  unsigned long long result;
+  
+  arg1 = (LLVMTargetDataRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef)jarg2; 
+  
+  result = (unsigned long long)LLVMStoreSizeOfType(arg1,arg2);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport unsigned long long SWIGSTDCALL Ada_LLVMABISizeOfType (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  unsigned long long jresult ;
+  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
+  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
+  unsigned long long result;
+  
+  arg1 = (LLVMTargetDataRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef)jarg2; 
+  
+  result = (unsigned long long)LLVMABISizeOfType(arg1,arg2);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport unsigned int SWIGSTDCALL Ada_LLVMABIAlignmentOfType (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  unsigned int jresult ;
+  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
+  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
+  unsigned int result;
+  
+  arg1 = (LLVMTargetDataRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef)jarg2; 
+  
+  result = (unsigned int)LLVMABIAlignmentOfType(arg1,arg2);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport unsigned int SWIGSTDCALL Ada_LLVMCallFrameAlignmentOfType (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  unsigned int jresult ;
+  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
+  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
+  unsigned int result;
+  
+  arg1 = (LLVMTargetDataRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef)jarg2; 
+  
+  result = (unsigned int)LLVMCallFrameAlignmentOfType(arg1,arg2);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport unsigned int SWIGSTDCALL Ada_LLVMPreferredAlignmentOfType (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  unsigned int jresult ;
+  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
+  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
+  unsigned int result;
+  
+  arg1 = (LLVMTargetDataRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef)jarg2; 
+  
+  result = (unsigned int)LLVMPreferredAlignmentOfType(arg1,arg2);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport unsigned int SWIGSTDCALL Ada_LLVMPreferredAlignmentOfGlobal (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  unsigned int jresult ;
+  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
+  LLVMValueRef arg2 = (LLVMValueRef) 0 ;
+  unsigned int result;
+  
+  arg1 = (LLVMTargetDataRef)jarg1; 
+  
+  arg2 = (LLVMValueRef)jarg2; 
+  
+  result = (unsigned int)LLVMPreferredAlignmentOfGlobal(arg1,arg2);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport unsigned int SWIGSTDCALL Ada_LLVMElementAtOffset (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  unsigned long long jarg3
+  )
+{
+  unsigned int jresult ;
+  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
+  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
+  unsigned long long arg3 ;
+  unsigned int result;
+  
+  arg1 = (LLVMTargetDataRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef)jarg2; 
+  
+  
+  arg3 = (unsigned long long) jarg3; 
+  
+  
+  result = (unsigned int)LLVMElementAtOffset(arg1,arg2,arg3);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport unsigned long long SWIGSTDCALL Ada_LLVMOffsetOfElement (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  ,
+  
+  unsigned int jarg3
+  )
+{
+  unsigned long long jresult ;
+  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
+  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
+  unsigned int arg3 ;
+  unsigned long long result;
+  
+  arg1 = (LLVMTargetDataRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef)jarg2; 
+  
+  
+  arg3 = (unsigned int) jarg3; 
+  
+  
+  result = (unsigned long long)LLVMOffsetOfElement(arg1,arg2,arg3);
+  jresult = result; 
+  
+  
+  
+  return jresult;
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMInvalidateStructLayout (
+  void * jarg1
+  ,
+  
+  void * jarg2
+  )
+{
+  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
+  LLVMTypeRef arg2 = (LLVMTypeRef) 0 ;
+  
+  arg1 = (LLVMTargetDataRef)jarg1; 
+  
+  arg2 = (LLVMTypeRef)jarg2; 
+  
+  LLVMInvalidateStructLayout(arg1,arg2);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMDisposeTargetData (
+  void * jarg1
+  )
+{
+  LLVMTargetDataRef arg1 = (LLVMTargetDataRef) 0 ;
+  
+  arg1 = (LLVMTargetDataRef)jarg1; 
+  
+  LLVMDisposeTargetData(arg1);
+  
+  
+}
+
+
+
+#ifdef __cplusplus
+}
+#endif
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+

Added: llvm/trunk/bindings/ada/transforms/llvm_transforms-binding.ads
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ada/transforms/llvm_transforms-binding.ads?rev=79295&view=auto

==============================================================================
--- llvm/trunk/bindings/ada/transforms/llvm_transforms-binding.ads (added)
+++ llvm/trunk/bindings/ada/transforms/llvm_transforms-binding.ads Mon Aug 17 19:24:36 2009
@@ -0,0 +1,206 @@
+-- This file is generated by SWIG. Do *not* modify by hand.
+--
+
+with llvm;
+
+
+package LLVM_Transforms.Binding is
+
+   procedure LLVMAddArgumentPromotionPass (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddConstantMergePass (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddDeadArgEliminationPass
+     (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddDeadTypeEliminationPass
+     (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddFunctionAttrsPass (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddFunctionInliningPass (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddGlobalDCEPass (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddGlobalOptimizerPass (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddIPConstantPropagationPass
+     (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddLowerSetJmpPass (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddPruneEHPass (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddRaiseAllocationsPass (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddStripDeadPrototypesPass
+     (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddStripSymbolsPass (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddAggressiveDCEPass (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddCFGSimplificationPass (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddCondPropagationPass (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddDeadStoreEliminationPass
+     (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddGVNPass (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddIndVarSimplifyPass (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddInstructionCombiningPass
+     (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddJumpThreadingPass (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddLICMPass (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddLoopDeletionPass (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddLoopIndexSplitPass (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddLoopRotatePass (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddLoopUnrollPass (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddLoopUnswitchPass (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddMemCpyOptPass (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddPromoteMemoryToRegisterPass
+     (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddReassociatePass (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddSCCPPass (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddScalarReplAggregatesPass
+     (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddSimplifyLibCallsPass (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddTailCallEliminationPass
+     (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddConstantPropagationPass
+     (PM : in llvm.LLVMPassManagerRef);
+
+   procedure LLVMAddDemoteMemoryToRegisterPass
+     (PM : in llvm.LLVMPassManagerRef);
+
+private
+
+   pragma Import
+     (C,
+      LLVMAddArgumentPromotionPass,
+      "Ada_LLVMAddArgumentPromotionPass");
+   pragma Import
+     (C,
+      LLVMAddConstantMergePass,
+      "Ada_LLVMAddConstantMergePass");
+   pragma Import
+     (C,
+      LLVMAddDeadArgEliminationPass,
+      "Ada_LLVMAddDeadArgEliminationPass");
+   pragma Import
+     (C,
+      LLVMAddDeadTypeEliminationPass,
+      "Ada_LLVMAddDeadTypeEliminationPass");
+   pragma Import
+     (C,
+      LLVMAddFunctionAttrsPass,
+      "Ada_LLVMAddFunctionAttrsPass");
+   pragma Import
+     (C,
+      LLVMAddFunctionInliningPass,
+      "Ada_LLVMAddFunctionInliningPass");
+   pragma Import (C, LLVMAddGlobalDCEPass, "Ada_LLVMAddGlobalDCEPass");
+   pragma Import
+     (C,
+      LLVMAddGlobalOptimizerPass,
+      "Ada_LLVMAddGlobalOptimizerPass");
+   pragma Import
+     (C,
+      LLVMAddIPConstantPropagationPass,
+      "Ada_LLVMAddIPConstantPropagationPass");
+   pragma Import (C, LLVMAddLowerSetJmpPass, "Ada_LLVMAddLowerSetJmpPass");
+   pragma Import (C, LLVMAddPruneEHPass, "Ada_LLVMAddPruneEHPass");
+   pragma Import
+     (C,
+      LLVMAddRaiseAllocationsPass,
+      "Ada_LLVMAddRaiseAllocationsPass");
+   pragma Import
+     (C,
+      LLVMAddStripDeadPrototypesPass,
+      "Ada_LLVMAddStripDeadPrototypesPass");
+   pragma Import (C, LLVMAddStripSymbolsPass, "Ada_LLVMAddStripSymbolsPass");
+   pragma Import
+     (C,
+      LLVMAddAggressiveDCEPass,
+      "Ada_LLVMAddAggressiveDCEPass");
+   pragma Import
+     (C,
+      LLVMAddCFGSimplificationPass,
+      "Ada_LLVMAddCFGSimplificationPass");
+   pragma Import
+     (C,
+      LLVMAddCondPropagationPass,
+      "Ada_LLVMAddCondPropagationPass");
+   pragma Import
+     (C,
+      LLVMAddDeadStoreEliminationPass,
+      "Ada_LLVMAddDeadStoreEliminationPass");
+   pragma Import (C, LLVMAddGVNPass, "Ada_LLVMAddGVNPass");
+   pragma Import
+     (C,
+      LLVMAddIndVarSimplifyPass,
+      "Ada_LLVMAddIndVarSimplifyPass");
+   pragma Import
+     (C,
+      LLVMAddInstructionCombiningPass,
+      "Ada_LLVMAddInstructionCombiningPass");
+   pragma Import
+     (C,
+      LLVMAddJumpThreadingPass,
+      "Ada_LLVMAddJumpThreadingPass");
+   pragma Import (C, LLVMAddLICMPass, "Ada_LLVMAddLICMPass");
+   pragma Import (C, LLVMAddLoopDeletionPass, "Ada_LLVMAddLoopDeletionPass");
+   pragma Import
+     (C,
+      LLVMAddLoopIndexSplitPass,
+      "Ada_LLVMAddLoopIndexSplitPass");
+   pragma Import (C, LLVMAddLoopRotatePass, "Ada_LLVMAddLoopRotatePass");
+   pragma Import (C, LLVMAddLoopUnrollPass, "Ada_LLVMAddLoopUnrollPass");
+   pragma Import (C, LLVMAddLoopUnswitchPass, "Ada_LLVMAddLoopUnswitchPass");
+   pragma Import (C, LLVMAddMemCpyOptPass, "Ada_LLVMAddMemCpyOptPass");
+   pragma Import
+     (C,
+      LLVMAddPromoteMemoryToRegisterPass,
+      "Ada_LLVMAddPromoteMemoryToRegisterPass");
+   pragma Import (C, LLVMAddReassociatePass, "Ada_LLVMAddReassociatePass");
+   pragma Import (C, LLVMAddSCCPPass, "Ada_LLVMAddSCCPPass");
+   pragma Import
+     (C,
+      LLVMAddScalarReplAggregatesPass,
+      "Ada_LLVMAddScalarReplAggregatesPass");
+   pragma Import
+     (C,
+      LLVMAddSimplifyLibCallsPass,
+      "Ada_LLVMAddSimplifyLibCallsPass");
+   pragma Import
+     (C,
+      LLVMAddTailCallEliminationPass,
+      "Ada_LLVMAddTailCallEliminationPass");
+   pragma Import
+     (C,
+      LLVMAddConstantPropagationPass,
+      "Ada_LLVMAddConstantPropagationPass");
+   pragma Import
+     (C,
+      LLVMAddDemoteMemoryToRegisterPass,
+      "Ada_LLVMAddDemoteMemoryToRegisterPass");
+
+end LLVM_Transforms.Binding;

Added: llvm/trunk/bindings/ada/transforms/llvm_transforms.ads
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ada/transforms/llvm_transforms.ads?rev=79295&view=auto

==============================================================================
--- llvm/trunk/bindings/ada/transforms/llvm_transforms.ads (added)
+++ llvm/trunk/bindings/ada/transforms/llvm_transforms.ads Mon Aug 17 19:24:36 2009
@@ -0,0 +1,6 @@
+-- This file is generated by SWIG. Do *not* modify by hand.
+--
+
+package LLVM_Transforms is
+
+end LLVM_Transforms;

Added: llvm/trunk/bindings/ada/transforms/llvm_transforms_wrap.cxx
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ada/transforms/llvm_transforms_wrap.cxx?rev=79295&view=auto

==============================================================================
--- llvm/trunk/bindings/ada/transforms/llvm_transforms_wrap.cxx (added)
+++ llvm/trunk/bindings/ada/transforms/llvm_transforms_wrap.cxx Mon Aug 17 19:24:36 2009
@@ -0,0 +1,828 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 1.3.36
+ * 
+ * This file is not intended to be easily readable and contains a number of 
+ * coding conventions designed to improve portability and efficiency. Do not make
+ * changes to this file unless you know what you are doing--modify the SWIG 
+ * interface file instead. 
+ * ----------------------------------------------------------------------------- */
+
+
+#ifdef __cplusplus
+template<typename T> class SwigValueWrapper {
+    T *tt;
+public:
+    SwigValueWrapper() : tt(0) { }
+    SwigValueWrapper(const SwigValueWrapper<T>& rhs) : tt(new T(*rhs.tt)) { }
+    SwigValueWrapper(const T& t) : tt(new T(t)) { }
+    ~SwigValueWrapper() { delete tt; } 
+    SwigValueWrapper& operator=(const T& t) { delete tt; tt = new T(t); return *this; }
+    operator T&() const { return *tt; }
+    T *operator&() { return tt; }
+private:
+    SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
+};
+
+template <typename T> T SwigValueInit() {
+  return T();
+}
+#endif
+
+/* -----------------------------------------------------------------------------
+ *  This section contains generic SWIG labels for method/variable
+ *  declarations/attributes, and other compiler dependent labels.
+ * ----------------------------------------------------------------------------- */
+
+/* template workaround for compilers that cannot correctly implement the C++ standard */
+#ifndef SWIGTEMPLATEDISAMBIGUATOR
+# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
+#  define SWIGTEMPLATEDISAMBIGUATOR template
+# elif defined(__HP_aCC)
+/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
+/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
+#  define SWIGTEMPLATEDISAMBIGUATOR template
+# else
+#  define SWIGTEMPLATEDISAMBIGUATOR
+# endif
+#endif
+
+/* inline attribute */
+#ifndef SWIGINLINE
+# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
+#   define SWIGINLINE inline
+# else
+#   define SWIGINLINE
+# endif
+#endif
+
+/* attribute recognised by some compilers to avoid 'unused' warnings */
+#ifndef SWIGUNUSED
+# if defined(__GNUC__)
+#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
+#     define SWIGUNUSED __attribute__ ((__unused__)) 
+#   else
+#     define SWIGUNUSED
+#   endif
+# elif defined(__ICC)
+#   define SWIGUNUSED __attribute__ ((__unused__)) 
+# else
+#   define SWIGUNUSED 
+# endif
+#endif
+
+#ifndef SWIGUNUSEDPARM
+# ifdef __cplusplus
+#   define SWIGUNUSEDPARM(p)
+# else
+#   define SWIGUNUSEDPARM(p) p SWIGUNUSED 
+# endif
+#endif
+
+/* internal SWIG method */
+#ifndef SWIGINTERN
+# define SWIGINTERN static SWIGUNUSED
+#endif
+
+/* internal inline SWIG method */
+#ifndef SWIGINTERNINLINE
+# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
+#endif
+
+/* exporting methods */
+#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+#  ifndef GCC_HASCLASSVISIBILITY
+#    define GCC_HASCLASSVISIBILITY
+#  endif
+#endif
+
+#ifndef SWIGEXPORT
+# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+#   if defined(STATIC_LINKED)
+#     define SWIGEXPORT
+#   else
+#     define SWIGEXPORT __declspec(dllexport)
+#   endif
+# else
+#   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
+#     define SWIGEXPORT __attribute__ ((visibility("default")))
+#   else
+#     define SWIGEXPORT
+#   endif
+# endif
+#endif
+
+/* calling conventions for Windows */
+#ifndef SWIGSTDCALL
+# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
+#   define SWIGSTDCALL __stdcall
+# else
+#   define SWIGSTDCALL
+# endif 
+#endif
+
+/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
+#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
+# define _CRT_SECURE_NO_DEPRECATE
+#endif
+
+/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
+#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
+# define _SCL_SECURE_NO_DEPRECATE
+#endif
+
+
+
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#if defined(_WIN32) || defined(__CYGWIN32__)
+#  define DllExport   __declspec( dllexport )
+#  define SWIGSTDCALL __stdcall
+#else
+#  define DllExport  
+#  define SWIGSTDCALL
+#endif 
+
+
+#ifdef __cplusplus
+#  include <new>
+#endif
+
+
+
+
+/* Support for throwing Ada exceptions from C/C++ */
+
+typedef enum 
+{
+  SWIG_AdaException,
+  SWIG_AdaOutOfMemoryException,
+  SWIG_AdaIndexOutOfRangeException,
+  SWIG_AdaDivideByZeroException,
+  SWIG_AdaArgumentOutOfRangeException,
+  SWIG_AdaNullReferenceException
+} SWIG_AdaExceptionCodes;
+
+
+typedef void (SWIGSTDCALL* SWIG_AdaExceptionCallback_t)(const char *);
+
+
+typedef struct 
+{
+  SWIG_AdaExceptionCodes code;
+  SWIG_AdaExceptionCallback_t callback;
+} 
+  SWIG_AdaExceptions_t;
+
+
+static 
+SWIG_AdaExceptions_t 
+SWIG_ada_exceptions[] = 
+{
+  { SWIG_AdaException, NULL },
+  { SWIG_AdaOutOfMemoryException, NULL },
+  { SWIG_AdaIndexOutOfRangeException, NULL },
+  { SWIG_AdaDivideByZeroException, NULL },
+  { SWIG_AdaArgumentOutOfRangeException, NULL },
+  { SWIG_AdaNullReferenceException, NULL } 
+};
+
+
+static 
+void 
+SWIG_AdaThrowException (SWIG_AdaExceptionCodes code, const char *msg) 
+{
+  SWIG_AdaExceptionCallback_t callback = SWIG_ada_exceptions[SWIG_AdaException].callback;
+  if (code >=0 && (size_t)code < sizeof(SWIG_ada_exceptions)/sizeof(SWIG_AdaExceptions_t)) {
+    callback = SWIG_ada_exceptions[code].callback;
+  }
+  callback(msg);
+}
+
+
+
+#ifdef __cplusplus
+extern "C" 
+#endif
+
+DllExport void SWIGSTDCALL SWIGRegisterExceptionCallbacks_LLVM_Transforms (SWIG_AdaExceptionCallback_t systemException,
+                                                                   SWIG_AdaExceptionCallback_t outOfMemory, 
+                                                                   SWIG_AdaExceptionCallback_t indexOutOfRange, 
+                                                                   SWIG_AdaExceptionCallback_t divideByZero, 
+                                                                   SWIG_AdaExceptionCallback_t argumentOutOfRange,
+                                                                   SWIG_AdaExceptionCallback_t nullReference) 
+{
+  SWIG_ada_exceptions [SWIG_AdaException].callback                   = systemException;
+  SWIG_ada_exceptions [SWIG_AdaOutOfMemoryException].callback        = outOfMemory;
+  SWIG_ada_exceptions [SWIG_AdaIndexOutOfRangeException].callback    = indexOutOfRange;
+  SWIG_ada_exceptions [SWIG_AdaDivideByZeroException].callback       = divideByZero;
+  SWIG_ada_exceptions [SWIG_AdaArgumentOutOfRangeException].callback = argumentOutOfRange;
+  SWIG_ada_exceptions [SWIG_AdaNullReferenceException].callback      = nullReference;
+}
+
+
+/* Callback for returning strings to Ada without leaking memory */
+
+typedef char * (SWIGSTDCALL* SWIG_AdaStringHelperCallback)(const char *);
+static SWIG_AdaStringHelperCallback SWIG_ada_string_callback = NULL;
+
+
+
+/* probably obsolete ...
+#ifdef __cplusplus
+extern "C" 
+#endif
+DllExport void SWIGSTDCALL SWIGRegisterStringCallback_LLVM_Transforms(SWIG_AdaStringHelperCallback callback) {
+  SWIG_ada_string_callback = callback;
+}
+*/
+
+
+
+/* Contract support */
+
+#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_AdaThrowException(SWIG_AdaArgumentOutOfRangeException, msg); return nullreturn; } else
+
+
+#define protected public
+#define private   public
+
+#include "llvm-c/Transforms/IPO.h"
+#include "llvm-c/Transforms/Scalar.h"
+
+
+
+//  struct LLVMCtxt;
+
+
+#undef protected
+#undef private
+#ifdef __cplusplus 
+extern "C" {
+#endif
+DllExport void SWIGSTDCALL Ada_LLVMAddArgumentPromotionPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddArgumentPromotionPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddConstantMergePass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddConstantMergePass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddDeadArgEliminationPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddDeadArgEliminationPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddDeadTypeEliminationPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddDeadTypeEliminationPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddFunctionAttrsPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddFunctionAttrsPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddFunctionInliningPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddFunctionInliningPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddGlobalDCEPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddGlobalDCEPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddGlobalOptimizerPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddGlobalOptimizerPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddIPConstantPropagationPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddIPConstantPropagationPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddLowerSetJmpPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddLowerSetJmpPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddPruneEHPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddPruneEHPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddRaiseAllocationsPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddRaiseAllocationsPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddStripDeadPrototypesPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddStripDeadPrototypesPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddStripSymbolsPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddStripSymbolsPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddAggressiveDCEPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddAggressiveDCEPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddCFGSimplificationPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddCFGSimplificationPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddCondPropagationPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddCondPropagationPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddDeadStoreEliminationPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddDeadStoreEliminationPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddGVNPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddGVNPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddIndVarSimplifyPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddIndVarSimplifyPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddInstructionCombiningPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddInstructionCombiningPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddJumpThreadingPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddJumpThreadingPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddLICMPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddLICMPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddLoopDeletionPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddLoopDeletionPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddLoopIndexSplitPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddLoopIndexSplitPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddLoopRotatePass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddLoopRotatePass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddLoopUnrollPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddLoopUnrollPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddLoopUnswitchPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddLoopUnswitchPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddMemCpyOptPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddMemCpyOptPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddPromoteMemoryToRegisterPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddPromoteMemoryToRegisterPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddReassociatePass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddReassociatePass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddSCCPPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddSCCPPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddScalarReplAggregatesPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddScalarReplAggregatesPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddSimplifyLibCallsPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddSimplifyLibCallsPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddTailCallEliminationPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddTailCallEliminationPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddConstantPropagationPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddConstantPropagationPass(arg1);
+  
+  
+}
+
+
+
+DllExport void SWIGSTDCALL Ada_LLVMAddDemoteMemoryToRegisterPass (
+  void * jarg1
+  )
+{
+  LLVMPassManagerRef arg1 = (LLVMPassManagerRef) 0 ;
+  
+  arg1 = (LLVMPassManagerRef)jarg1; 
+  
+  LLVMAddDemoteMemoryToRegisterPass(arg1);
+  
+  
+}
+
+
+
+#ifdef __cplusplus
+}
+#endif
+#ifdef __cplusplus
+extern "C" {
+#endif
+#ifdef __cplusplus
+}
+#endif
+





More information about the llvm-commits mailing list