From 97bfcddde0a0e827cb868b38c7da8d8692da6cce Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Thu, 7 Mar 2013 16:51:08 -0500 Subject: [PATCH] r600g/llvm: Move llvm wrapper functions into the radeon directory --- src/gallium/drivers/r600/Makefile.am | 6 +----- src/gallium/drivers/r600/Makefile.sources | 1 - src/gallium/drivers/r600/evergreen_compute.c | 6 +++--- src/gallium/drivers/r600/llvm_wrapper.h | 20 ------------------- src/gallium/drivers/radeon/Makefile.sources | 3 ++- .../radeon_llvm_util.cpp} | 17 ++++++++-------- src/gallium/drivers/radeon/radeon_llvm_util.h | 20 +++++++++++++++++++ 7 files changed, 35 insertions(+), 38 deletions(-) delete mode 100644 src/gallium/drivers/r600/llvm_wrapper.h rename src/gallium/drivers/{r600/llvm_wrapper.cpp => radeon/radeon_llvm_util.cpp} (71%) create mode 100644 src/gallium/drivers/radeon/radeon_llvm_util.h diff --git a/src/gallium/drivers/r600/Makefile.am b/src/gallium/drivers/r600/Makefile.am index e1c8574eb9e..a067f2c4e72 100644 --- a/src/gallium/drivers/r600/Makefile.am +++ b/src/gallium/drivers/r600/Makefile.am @@ -16,8 +16,7 @@ libr600_la_SOURCES = \ if R600_NEED_RADEON_GALLIUM libr600_la_SOURCES += \ - $(LLVM_C_SOURCES) \ - $(LLVM_CXX_SOURCES) + $(LLVM_C_SOURCES) libr600_la_LIBADD = ../radeon/libllvmradeon@VERSION@.la @@ -25,9 +24,6 @@ AM_CFLAGS += \ $(LLVM_CFLAGS) \ -I$(top_srcdir)/src/gallium/drivers/radeon/ -AM_CXXFLAGS= \ - $(LLVM_CXXFLAGS) \ - $(DEFINES) endif if USE_R600_LLVM_COMPILER diff --git a/src/gallium/drivers/r600/Makefile.sources b/src/gallium/drivers/r600/Makefile.sources index a99ef110d0c..b51f2742ef0 100644 --- a/src/gallium/drivers/r600/Makefile.sources +++ b/src/gallium/drivers/r600/Makefile.sources @@ -20,4 +20,3 @@ C_SOURCES = \ compute_memory_pool.c LLVM_C_SOURCES = r600_llvm.c -LLVM_CXX_SOURCES = llvm_wrapper.cpp diff --git a/src/gallium/drivers/r600/evergreen_compute.c b/src/gallium/drivers/r600/evergreen_compute.c index 80ce739e021..189ffacb7f7 100644 --- a/src/gallium/drivers/r600/evergreen_compute.c +++ b/src/gallium/drivers/r600/evergreen_compute.c @@ -47,7 +47,7 @@ #include "evergreen_compute_internal.h" #include "compute_memory_pool.h" #ifdef HAVE_OPENCL -#include "llvm_wrapper.h" +#include "radeon_llvm_util.h" #endif /** @@ -140,12 +140,12 @@ void *evergreen_create_compute_state( shader->input_size = cso->req_input_mem; #ifdef HAVE_OPENCL - shader->num_kernels = llvm_get_num_kernels(code, header->num_bytes); + shader->num_kernels = radeon_llvm_get_num_kernels(code, header->num_bytes); shader->kernels = CALLOC(sizeof(struct r600_kernel), shader->num_kernels); for (i = 0; i < shader->num_kernels; i++) { struct r600_kernel *kernel = &shader->kernels[i]; - kernel->llvm_module = llvm_get_kernel_module(i, code, + kernel->llvm_module = radeon_llvm_get_kernel_module(i, code, header->num_bytes); } #endif diff --git a/src/gallium/drivers/r600/llvm_wrapper.h b/src/gallium/drivers/r600/llvm_wrapper.h deleted file mode 100644 index 4b9b93f23c6..00000000000 --- a/src/gallium/drivers/r600/llvm_wrapper.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef LLVM_WRAPPER_H -#define LLVM_WRAPPER_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -LLVMModuleRef llvm_parse_bitcode(const unsigned char * bitcode, unsigned bitcode_len); -void llvm_strip_unused_kernels(LLVMModuleRef mod, const char *kernel_name); -unsigned llvm_get_num_kernels(const unsigned char *bitcode, unsigned bitcode_len); -LLVMModuleRef llvm_get_kernel_module(unsigned index, - const unsigned char *bitcode, unsigned bitcode_len); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/src/gallium/drivers/radeon/Makefile.sources b/src/gallium/drivers/radeon/Makefile.sources index 39f9532fe40..aa327490f44 100644 --- a/src/gallium/drivers/radeon/Makefile.sources +++ b/src/gallium/drivers/radeon/Makefile.sources @@ -1,5 +1,6 @@ CPP_FILES := \ - radeon_llvm_emit.cpp + radeon_llvm_emit.cpp \ + radeon_llvm_util.cpp C_FILES := \ radeon_setup_tgsi_llvm.c diff --git a/src/gallium/drivers/r600/llvm_wrapper.cpp b/src/gallium/drivers/radeon/radeon_llvm_util.cpp similarity index 71% rename from src/gallium/drivers/r600/llvm_wrapper.cpp rename to src/gallium/drivers/radeon/radeon_llvm_util.cpp index ae2f4d24f74..22c6dc6f65c 100644 --- a/src/gallium/drivers/r600/llvm_wrapper.cpp +++ b/src/gallium/drivers/radeon/radeon_llvm_util.cpp @@ -11,10 +11,10 @@ #include #include -#include "llvm_wrapper.h" +#include "radeon_llvm_util.h" -extern "C" LLVMModuleRef llvm_parse_bitcode(const unsigned char * bitcode, unsigned bitcode_len) +extern "C" LLVMModuleRef radeon_llvm_parse_bitcode(const unsigned char * bitcode, unsigned bitcode_len) { llvm::OwningPtr M; llvm::StringRef str((const char*)bitcode, bitcode_len); @@ -24,7 +24,7 @@ extern "C" LLVMModuleRef llvm_parse_bitcode(const unsigned char * bitcode, unsig return wrap(M.take()); } -extern "C" void llvm_strip_unused_kernels(LLVMModuleRef mod, const char *kernel_name) +extern "C" void radeon_llvm_strip_unused_kernels(LLVMModuleRef mod, const char *kernel_name) { llvm::Module *M = llvm::unwrap(mod); std::vector export_list; @@ -35,10 +35,10 @@ extern "C" void llvm_strip_unused_kernels(LLVMModuleRef mod, const char *kernel_ PM.run(*M); } -extern "C" unsigned llvm_get_num_kernels(const unsigned char *bitcode, +extern "C" unsigned radeon_llvm_get_num_kernels(const unsigned char *bitcode, unsigned bitcode_len) { - LLVMModuleRef mod = llvm_parse_bitcode(bitcode, bitcode_len); + LLVMModuleRef mod = radeon_llvm_parse_bitcode(bitcode, bitcode_len); llvm::Module *M = llvm::unwrap(mod); const llvm::NamedMDNode *kernel_node = M->getNamedMetadata("opencl.kernels"); @@ -47,15 +47,16 @@ extern "C" unsigned llvm_get_num_kernels(const unsigned char *bitcode, return kernel_count; } -extern "C" LLVMModuleRef llvm_get_kernel_module(unsigned index, +extern "C" LLVMModuleRef radeon_llvm_get_kernel_module(unsigned index, const unsigned char *bitcode, unsigned bitcode_len) { - LLVMModuleRef mod = llvm_parse_bitcode(bitcode, bitcode_len); + LLVMModuleRef mod = radeon_llvm_parse_bitcode(bitcode, bitcode_len); llvm::Module *M = llvm::unwrap(mod); const llvm::NamedMDNode *kernel_node = M->getNamedMetadata("opencl.kernels"); const char* kernel_name = kernel_node->getOperand(index)-> getOperand(0)->getName().data(); - llvm_strip_unused_kernels(mod, kernel_name); + radeon_llvm_strip_unused_kernels(mod, kernel_name); return mod; + } diff --git a/src/gallium/drivers/radeon/radeon_llvm_util.h b/src/gallium/drivers/radeon/radeon_llvm_util.h new file mode 100644 index 00000000000..a7dfa9baf56 --- /dev/null +++ b/src/gallium/drivers/radeon/radeon_llvm_util.h @@ -0,0 +1,20 @@ +#ifndef RADEON_LLVM_UTIL_H +#define RADEON_LLVM_UTIL_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +LLVMModuleRef radeon_llvm_parse_bitcode(const unsigned char * bitcode, unsigned bitcode_len); +void radeon_llvm_strip_unused_kernels(LLVMModuleRef mod, const char *kernel_name); +unsigned radeon_llvm_get_num_kernels(const unsigned char *bitcode, unsigned bitcode_len); +LLVMModuleRef radeon_llvm_get_kernel_module(unsigned index, + const unsigned char *bitcode, unsigned bitcode_len); + +#ifdef __cplusplus +} +#endif + +#endif -- 2.30.2