module lib.llvm.core

This file imports the regular C api of LLVM but also extends it with simple wrappers that works on native arrays instead of C pointer plus length arrays as well as string wrappers.

Code Map

//! This file imports the regular C api of LLVM but also extends it with
//! simple wrappers that works on native arrays instead of C pointer plus
//! length arrays as well as string wrappers.
module lib.llvm.core;

public import lib.llvm.c.Core;


enum llvmLicense;

alias LLVMSetTarget = lib.llvm.c.Core.LLVMSetTarget;
alias LLVMSetDataLayout = lib.llvm.c.Core.LLVMSetDataLayout;
alias LLVMModuleCreateWithNameInContext = lib.llvm.c.Core.LLVMModuleCreateWithNameInContext;
alias LLVMFunctionType = lib.llvm.c.Core.LLVMFunctionType;
alias LLVMStructCreateNamed = lib.llvm.c.Core.LLVMStructCreateNamed;
alias LLVMGetStructNamez = lib.llvm.c.Core.LLVMGetStructName;
alias LLVMStructSetBody = lib.llvm.c.Core.LLVMStructSetBody;
alias LLVMConstNamedStruct = lib.llvm.c.Core.LLVMConstNamedStruct;
alias LLVMConstStringInContext = lib.llvm.c.Core.LLVMConstStringInContext;
alias LLVMConstArray = lib.llvm.c.Core.LLVMConstArray;
alias LLVMConstInBoundsGEP = lib.llvm.c.Core.LLVMConstInBoundsGEP;
alias LLVMAddFunction = lib.llvm.c.Core.LLVMAddFunction;
alias LLVMBuildCall = lib.llvm.c.Core.LLVMBuildCall;
alias LLVMBuildInvoke = lib.llvm.c.Core.LLVMBuildInvoke;
alias LLVMBuildAlloca = lib.llvm.c.Core.LLVMBuildAlloca;
alias LLVMAddGlobal = lib.llvm.c.Core.LLVMAddGlobal;
alias LLVMBuildGEP = lib.llvm.c.Core.LLVMBuildGEP;
alias LLVMBuildInBoundsGEP = lib.llvm.c.Core.LLVMBuildInBoundsGEP;
alias LLVMStructTypeInContext = lib.llvm.c.Core.LLVMStructTypeInContext;
alias LLVMAddIncoming = lib.llvm.c.Core.LLVMAddIncoming;

fn LLVMSetTarget(mod: LLVMModuleRef, str: string) { }
fn LLVMSetDataLayout(mod: LLVMModuleRef, str: string) { }
fn LLVMModuleCreateWithNameInContext(name: string, c: LLVMContextRef) LLVMModuleRef { }
fn LLVMFunctionType(ret: LLVMTypeRef, args: LLVMTypeRef[], vararg: bool) LLVMTypeRef { }
fn LLVMStructTypeInContext(c: LLVMContextRef, types: LLVMTypeRef[], packed: LLVMBool) LLVMTypeRef { }
fn LLVMStructCreateNamed(c: LLVMContextRef, name: string) LLVMTypeRef { }
fn LLVMConstNamedStruct(structType: LLVMTypeRef, constantVals: LLVMValueRef[]) LLVMValueRef { }
fn LLVMGetStructName(t: LLVMTypeRef) string { }
fn LLVMStructSetBody(t: LLVMTypeRef, types: LLVMTypeRef[], packed: LLVMBool) { }
fn LLVMConstStringInContext(c: LLVMContextRef, str: const(char)[], nullTerminate: bool) LLVMValueRef { }
fn LLVMConstArray(type: LLVMTypeRef, vals: LLVMValueRef[]) LLVMValueRef { }
fn LLVMConstInBoundsGEP(val: LLVMValueRef, indices: LLVMValueRef[]) LLVMValueRef { }
fn LLVMAddFunction(mod: LLVMModuleRef, name: string, type: LLVMTypeRef) LLVMValueRef { }
fn LLVMBuildCall(b: LLVMBuilderRef, func: LLVMValueRef, args: LLVMValueRef[]) LLVMValueRef { }
fn LLVMBuildInvoke(b: LLVMBuilderRef, func: LLVMValueRef, args: LLVMValueRef[], then: LLVMBasicBlockRef, pad: LLVMBasicBlockRef) LLVMValueRef { }
fn LLVMBuildAlloca(b: LLVMBuilderRef, type: LLVMTypeRef, name: string) LLVMValueRef { }
fn LLVMAddGlobal(mod: LLVMModuleRef, type: LLVMTypeRef, name: string) LLVMValueRef { }
fn LLVMBuildGEP(b: LLVMBuilderRef, ptr: LLVMValueRef, i: LLVMValueRef[], name: string) LLVMValueRef { }
fn LLVMBuildInBoundsGEP(b: LLVMBuilderRef, ptr: LLVMValueRef, i: LLVMValueRef[], name: string) LLVMValueRef { }
fn LLVMAddIncoming(phi: LLVMValueRef, iv: LLVMValueRef[], ib: LLVMBasicBlockRef[]) { }
fn nullTerminate(stack: char[], str: string) const(char)* { }
fn handleAndDisposeMessage(msg: const(char)**) string { }
fn __ctor() { }