Mercurial > projects > ldc
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;