diff tools/binding/llvm/builder.d @ 1274:4ff9ab0d472c

Check in some old changes to the binding, from before I had commit access. - Add bindings for InsertValue and ExtractValue - Updates to use new APIs where they were renamed or removed. - Add generic error messages if LLVM didn't provide one. - Enable typesafe variadic arguments for GetGEP.
author Frits van Bommel <fvbommel wxs.nl>
date Mon, 27 Apr 2009 22:34:36 +0200
parents 1ba61de8796b
children
line wrap: on
line diff
--- a/tools/binding/llvm/builder.d	Mon Apr 27 22:33:17 2009 +0200
+++ b/tools/binding/llvm/builder.d	Mon Apr 27 22:34:36 2009 +0200
@@ -72,6 +72,12 @@
     template Build_Value_Value_Value_Name(char[] N) {
        const Build_Value_Value_Value_Name = Build_Named_Mixin!(N, "Value a, Value b, Value c", `a.value, b.value, c.value`);
     }
+    template Build_Value_uint_Name(char[] N) {
+        const Build_Value_uint_Name = Build_Named_Mixin!(N, "Value a, uint n", `a.value, n`);
+    }
+    template Build_Value_Value_uint_Name(char[] N) {
+       const Build_Value_Value_uint_Name = Build_Named_Mixin!(N, "Value a, Value b, uint n", `a.value, b.value, n`);
+    }
     template Build_Cmp(char[] PRED, char[] N) {
        const Build_Cmp = Build_Named_Mixin!(N, ""~PRED~"Predicate p, Value l, Value r", `p, l.value, r.value`);
     }
@@ -172,6 +178,10 @@
         "Select", "InsertElement", "ShuffleVector"
     ));
     ///
+    mixin(Build_Value_uint_Name!("ExtractValue"));
+    ///
+    mixin(Build_Value_Value_uint_Name!("InsertValue"));
+    ///
     Value buildCall(Value fn, Value[] args, char[] name) {
         auto llargs = new LLVMValueRef[args.length];
         foreach(i,a; args) llargs[i] = a.value;