changeset 167:cbebde9ba2c8

proper patch for llvm bindings
author dan amlund <danamlund@gmail.com>
date Wed, 23 Jul 2008 00:31:11 +0200
parents 9cfa33517526
children b4aab11a02df
files llvm.patch
diffstat 1 files changed, 128 insertions(+), 79 deletions(-) [+]
line wrap: on
line diff
--- a/llvm.patch	Tue Jul 22 21:34:53 2008 +0200
+++ b/llvm.patch	Wed Jul 23 00:31:11 2008 +0200
@@ -1,48 +1,7 @@
-Index: llvm/c/Core.d
-===================================================================
---- llvm/c/Core.d	(revision 170)
-+++ llvm/c/Core.d	(working copy)
-@@ -82,6 +82,20 @@
-  */
- typedef LLVM_OpaqueMemoryBuffer* LLVMMemoryBufferRef;
- 
-+enum LLVMParamAttr {
-+    ZExt = 1<<0,
-+    SExt = 1<<1,
-+    NoReturn = 1<<2,
-+    InReg = 1<<3,
-+    StructRet = 1<<4,
-+    NoUnwind = 1<<5,
-+    NoAlias = 1<<6,
-+    ByVal = 1<<7,
-+    Nest = 1<<8,
-+    ReadNone = 1<<9,
-+    ReadOnly = 1<<10
-+}
-+
- enum LLVMTypeKind {
-   Void,        /**< type with no size */
-   Float,       /**< 32 bit floating point type */
-@@ -388,6 +402,14 @@
- /*const*/ char *LLVMGetCollector(LLVMValueRef Fn);
- void LLVMSetCollector(LLVMValueRef Fn, /*const*/ char *Coll);
- 
-+void LLVMAddParamAttr(LLVMValueRef Arg, LLVMParamAttr Attr);
-+void LLVMRemoveParamAttr(LLVMValueRef Arg, LLVMParamAttr Attr);
-+void LLVMSetParamAlignment(LLVMValueRef Arg, uint Align);
-+void LLVMAddInstrParamAttr(LLVMValueRef Inst, uint Index, LLVMParamAttr Attr);
-+void LLVMRemoveInstrParamAttr(LLVMValueRef Inst, uint Index, LLVMParamAttr Attr);
-+void LLVMSetInstrParamAlignment(LLVMValueRef Inst, uint Index, uint Align);
-+
-+
- /* Operations on basic blocks */
- LLVMValueRef LLVMBasicBlockAsValue(LLVMBasicBlockRef Bb);
- int LLVMValueIsBasicBlock(LLVMValueRef Val);
-Index: llvm/llvm.d
-===================================================================
---- llvm/llvm.d	(revision 170)
-+++ llvm/llvm.d	(working copy)
-@@ -43,6 +43,8 @@
+diff -Naur -X exclude llvmbindings/llvm/llvm.d llvmbindings_ny/llvm/llvm.d
+--- llvmbindings/llvm/llvm.d	2008-07-23 00:11:36.000000000 +0200
++++ llvmbindings_ny/llvm/llvm.d	2008-07-22 23:51:15.000000000 +0200
+@@ -44,6 +44,8 @@
  alias LLVMVisibility Visibility;
  ///
  alias LLVMValueKind ValueKind;
@@ -51,7 +10,7 @@
  
  ///
  class Module
-@@ -836,6 +838,20 @@
+@@ -837,6 +839,20 @@
          return getValueOf(v);
      }
      ///
@@ -72,36 +31,126 @@
      uint intrinsicID()
      {
          return LLVMGetIntrinsicID(value);
-Index: llvm-fix.cpp
-===================================================================
---- llvm-fix.cpp	(revision 170)
-+++ llvm-fix.cpp	(working copy)
-@@ -29,10 +29,10 @@
-   APN.convert(SemanticsForType(unwrap(RealTy)), APFloat::rmNearestTiesToEven);
-   return wrap(ConstantFP::get(unwrap(RealTy), APN));
- }
--
-+/*
- LLVMValueRef LLVMConstRealOfString(LLVMTypeRef RealTy, const char *Text) {
-   return wrap(ConstantFP::get(unwrap(RealTy),
-                               APFloat(SemanticsForType(unwrap(RealTy)), Text)));
- }
--
-+*/
- }
-Index: llvm-ext.cpp
-===================================================================
---- llvm-ext.cpp	(revision 170)
-+++ llvm-ext.cpp	(working copy)
-@@ -80,9 +80,11 @@
- LLVMTargetDataRef LLVMGetTargetDataFromModule(LLVMModuleRef M) {
-     return wrap(new TargetData(unwrap(M)));
- }
-+/*
- void LLVMDisposeTargetData(LLVMTargetDataRef TD) {
-     delete unwrap(TD);
- }
-+*/
- 
- // we need to be able to query the ABI size of a type as an integer
- size_t LLVMGetABITypeSize(LLVMTargetDataRef TD, LLVMTypeRef T) {
+diff -Naur -X exclude llvmbindings/llvm/type.d llvmbindings_ny/llvm/type.d
+--- llvmbindings/llvm/type.d	2008-07-23 00:11:36.000000000 +0200
++++ llvmbindings_ny/llvm/type.d	2008-07-23 00:07:46.000000000 +0200
+@@ -111,7 +111,7 @@
+     Type refineAbstractType(Type to) {
+         assert(isAbstract());
+         
+-        LLVMRefineAbstractType(type, to.type);
++        //LLVMRefineAbstractType(type, to.type);
+         
+         // Either type will do. Go through the registry to try to use the
+         // "canonical" Type object for the type.
+diff -Naur -X exclude llvmbindings/llvm.patch llvmbindings_ny/llvm.patch
+--- llvmbindings/llvm.patch	1970-01-01 01:00:00.000000000 +0100
++++ llvmbindings_ny/llvm.patch	2008-07-22 23:45:58.000000000 +0200
+@@ -0,0 +1,107 @@
++Index: llvm/c/Core.d
++===================================================================
++--- llvm/c/Core.d	(revision 170)
+++++ llvm/c/Core.d	(working copy)
++@@ -82,6 +82,20 @@
++  */
++ typedef LLVM_OpaqueMemoryBuffer* LLVMMemoryBufferRef;
++ 
+++enum LLVMParamAttr {
+++    ZExt = 1<<0,
+++    SExt = 1<<1,
+++    NoReturn = 1<<2,
+++    InReg = 1<<3,
+++    StructRet = 1<<4,
+++    NoUnwind = 1<<5,
+++    NoAlias = 1<<6,
+++    ByVal = 1<<7,
+++    Nest = 1<<8,
+++    ReadNone = 1<<9,
+++    ReadOnly = 1<<10
+++}
+++
++ enum LLVMTypeKind {
++   Void,        /**< type with no size */
++   Float,       /**< 32 bit floating point type */
++@@ -388,6 +402,14 @@
++ /*const*/ char *LLVMGetCollector(LLVMValueRef Fn);
++ void LLVMSetCollector(LLVMValueRef Fn, /*const*/ char *Coll);
++ 
+++void LLVMAddParamAttr(LLVMValueRef Arg, LLVMParamAttr Attr);
+++void LLVMRemoveParamAttr(LLVMValueRef Arg, LLVMParamAttr Attr);
+++void LLVMSetParamAlignment(LLVMValueRef Arg, uint Align);
+++void LLVMAddInstrParamAttr(LLVMValueRef Inst, uint Index, LLVMParamAttr Attr);
+++void LLVMRemoveInstrParamAttr(LLVMValueRef Inst, uint Index, LLVMParamAttr Attr);
+++void LLVMSetInstrParamAlignment(LLVMValueRef Inst, uint Index, uint Align);
+++
+++
++ /* Operations on basic blocks */
++ LLVMValueRef LLVMBasicBlockAsValue(LLVMBasicBlockRef Bb);
++ int LLVMValueIsBasicBlock(LLVMValueRef Val);
++Index: llvm/llvm.d
++===================================================================
++--- llvm/llvm.d	(revision 170)
+++++ llvm/llvm.d	(working copy)
++@@ -43,6 +43,8 @@
++ alias LLVMVisibility Visibility;
++ ///
++ alias LLVMValueKind ValueKind;
+++///
+++public alias LLVMParamAttr ParamAttr;
++ 
++ ///
++ class Module
++@@ -836,6 +838,20 @@
++         return getValueOf(v);
++     }
++     ///
+++    void addParamAttr(uint idx, ParamAttr PA)
+++    {
+++        auto v = LLVMGetParam(value, idx);
+++        assert(v !is null);
+++        LLVMAddParamAttr(v, PA);
+++    }
+++    ///
+++    void removeParamAttr(uint idx, ParamAttr PA)
+++    {
+++        auto v = LLVMGetParam(value, idx);
+++        assert(v !is null);
+++        LLVMRemoveParamAttr(v, PA);
+++    }
+++    ///
++     uint intrinsicID()
++     {
++         return LLVMGetIntrinsicID(value);
++Index: llvm-fix.cpp
++===================================================================
++--- llvm-fix.cpp	(revision 170)
+++++ llvm-fix.cpp	(working copy)
++@@ -29,10 +29,10 @@
++   APN.convert(SemanticsForType(unwrap(RealTy)), APFloat::rmNearestTiesToEven);
++   return wrap(ConstantFP::get(unwrap(RealTy), APN));
++ }
++-
+++/*
++ LLVMValueRef LLVMConstRealOfString(LLVMTypeRef RealTy, const char *Text) {
++   return wrap(ConstantFP::get(unwrap(RealTy),
++                               APFloat(SemanticsForType(unwrap(RealTy)), Text)));
++ }
++-
+++*/
++ }
++Index: llvm-ext.cpp
++===================================================================
++--- llvm-ext.cpp	(revision 170)
+++++ llvm-ext.cpp	(working copy)
++@@ -80,9 +80,11 @@
++ LLVMTargetDataRef LLVMGetTargetDataFromModule(LLVMModuleRef M) {
++     return wrap(new TargetData(unwrap(M)));
++ }
+++/*
++ void LLVMDisposeTargetData(LLVMTargetDataRef TD) {
++     delete unwrap(TD);
++ }
+++*/
++ 
++ // we need to be able to query the ABI size of a type as an integer
++ size_t LLVMGetABITypeSize(LLVMTargetDataRef TD, LLVMTypeRef T) {