public LLVMGenericValueRef RunFunction(LLVMValueRef @F, LLVMGenericValueRef[] @Args) { return LLVM.RunFunction(this.instance, @F, @Args); }
public static extern LLVMGenericValueRef RunFunction(LLVMExecutionEngineRef @EE, LLVMValueRef @F, uint @NumArgs, out LLVMGenericValueRef @Args);
public static LLVMGenericValueRef RunFunction(LLVMExecutionEngineRef EE, LLVMValueRef F, LLVMGenericValueRef[] Args) { if (Args.Length == 0) { LLVMGenericValueRef dummy; return RunFunction(EE, F, 0, out dummy); } return RunFunction(EE, F, (uint)Args.Length, out Args[0]); }
public static extern ulong GenericValueToInt(LLVMGenericValueRef @GenVal, LLVMBool @IsSigned);
public static extern IntPtr GenericValueToPointer(LLVMGenericValueRef @GenVal);
public static extern uint GenericValueIntWidth(LLVMGenericValueRef @GenValRef);
public static extern double GenericValueToFloat(LLVMTypeRef @TyRef, LLVMGenericValueRef @GenVal);
public static extern void DisposeGenericValue(LLVMGenericValueRef @GenVal);
public double GenericValueToFloat(LLVMGenericValueRef @GenVal) { return LLVM.GenericValueToFloat(this, @GenVal); }
public double GenericValueToFloat(LLVMGenericValueRef @GenVal) { return(LLVM.GenericValueToFloat(this, @GenVal)); }
public double GenericValueToFloat(LLVMGenericValueRef GenVal) => LLVM.GenericValueToFloat(this, GenVal);
public int RunJit() { if (_main.Pointer == IntPtr.Zero) { throw new Exception("No main() found."); } //LLVM.LinkInInterpreter(); //LLVM.LinkInMCJIT(); LLVMExecutionEngineRef EE; IntPtr error; if (LLVM.CreateExecutionEngineForModule(out EE, _module, out error)) { string errMessage = Marshal.PtrToStringAuto(error); throw new Exception(string.Format("Failed to create execution engine: \'{0}\'", errMessage)); } LLVM.DisposeMessage(error); Debug.WriteLine("calling main()"); // Call the main function with no arguments: LLVMGenericValueRef[] noargs = new LLVMGenericValueRef[0]; LLVMGenericValueRef gv = LLVM.RunFunction(EE, _main, noargs); int statusCode = (int)LLVM.GenericValueToInt(gv, true); Debug.WriteLine("Result: {0}", statusCode); return statusCode; }