X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fauxiliary%2Fgallivm%2Flp_bld_init.h;h=62ca0c7faa47057db3e35426bc8817809ca185d1;hb=fd3e73f54e323d5de182bf6cdb6094c2fd7362b3;hp=0ec2afcd1be153c35ee04aff64ab7b307071367e;hpb=ff20543c815a14fddad1efaaef1610454a1924d4;p=mesa.git diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.h b/src/gallium/auxiliary/gallivm/lp_bld_init.h index 0ec2afcd1be..62ca0c7faa4 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_init.h +++ b/src/gallium/auxiliary/gallivm/lp_bld_init.h @@ -30,18 +30,56 @@ #define LP_BLD_INIT_H +#include "pipe/p_compiler.h" +#include "util/u_pointer.h" // for func_pointer #include "lp_bld.h" #include +#ifdef __cplusplus +extern "C" { +#endif -extern LLVMModuleRef lp_build_module; -extern LLVMExecutionEngineRef lp_build_engine; -extern LLVMModuleProviderRef lp_build_provider; -extern LLVMTargetDataRef lp_build_target; +struct gallivm_state +{ + char *module_name; + LLVMModuleRef module; + LLVMExecutionEngineRef engine; + LLVMTargetDataRef target; + LLVMPassManagerRef passmgr; + LLVMContextRef context; + LLVMBuilderRef builder; + LLVMMCJITMemoryManagerRef memorymgr; + struct lp_generated_code *code; + unsigned compiled; +}; -void +boolean lp_build_init(void); +struct gallivm_state * +gallivm_create(const char *name, LLVMContextRef context); + +void +gallivm_destroy(struct gallivm_state *gallivm); + +void +gallivm_free_ir(struct gallivm_state *gallivm); + +void +gallivm_verify_function(struct gallivm_state *gallivm, + LLVMValueRef func); + +void +gallivm_compile_module(struct gallivm_state *gallivm); + +func_pointer +gallivm_jit_function(struct gallivm_state *gallivm, + LLVMValueRef func); + +#ifdef __cplusplus +} +#endif + #endif /* !LP_BLD_INIT_H */