r600g/llvm: Move llvm wrapper functions into the radeon directory
authorTom Stellard <thomas.stellard@amd.com>
Thu, 7 Mar 2013 21:51:08 +0000 (16:51 -0500)
committerTom Stellard <thomas.stellard@amd.com>
Wed, 13 Mar 2013 16:01:30 +0000 (16:01 +0000)
src/gallium/drivers/r600/Makefile.am
src/gallium/drivers/r600/Makefile.sources
src/gallium/drivers/r600/evergreen_compute.c
src/gallium/drivers/r600/llvm_wrapper.cpp [deleted file]
src/gallium/drivers/r600/llvm_wrapper.h [deleted file]
src/gallium/drivers/radeon/Makefile.sources
src/gallium/drivers/radeon/radeon_llvm_util.cpp [new file with mode: 0644]
src/gallium/drivers/radeon/radeon_llvm_util.h [new file with mode: 0644]

index e1c8574eb9e250d9d0bfd045f18036edc83bd486..a067f2c4e720b1b09f6bc51693e821d0020bacf7 100644 (file)
@@ -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
index a99ef110d0cb621167336f1bcf7f71a6392143c9..b51f2742ef0e185e9b6d9a33e101efc2e1c93ab9 100644 (file)
@@ -20,4 +20,3 @@ C_SOURCES = \
        compute_memory_pool.c
 
 LLVM_C_SOURCES = r600_llvm.c
-LLVM_CXX_SOURCES = llvm_wrapper.cpp
index 80ce739e021dfe6cc8361ce6ed28b511cf618518..189ffacb7f7c77af1868527ad50762cd7d31bd35 100644 (file)
@@ -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.cpp b/src/gallium/drivers/r600/llvm_wrapper.cpp
deleted file mode 100644 (file)
index ae2f4d2..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-#include <llvm/ADT/OwningPtr.h>
-#include <llvm/ADT/StringRef.h>
-#if HAVE_LLVM < 0x0303
-#include <llvm/LLVMContext.h>
-#else
-#include <llvm/IR/LLVMContext.h>
-#endif
-#include <llvm/PassManager.h>
-#include <llvm/Support/IRReader.h>
-#include <llvm/Support/MemoryBuffer.h>
-#include <llvm/Support/SourceMgr.h>
-#include <llvm/Transforms/IPO.h>
-
-#include "llvm_wrapper.h"
-
-
-extern "C" LLVMModuleRef llvm_parse_bitcode(const unsigned char * bitcode, unsigned bitcode_len)
-{
-       llvm::OwningPtr<llvm::Module> M;
-       llvm::StringRef str((const char*)bitcode, bitcode_len);
-       llvm::MemoryBuffer*  buffer = llvm::MemoryBuffer::getMemBufferCopy(str);
-       llvm::SMDiagnostic Err;
-       M.reset(llvm::ParseIR(buffer, Err, llvm::getGlobalContext()));
-       return wrap(M.take());
-}
-
-extern "C" void llvm_strip_unused_kernels(LLVMModuleRef mod, const char *kernel_name)
-{
-       llvm::Module *M = llvm::unwrap(mod);
-       std::vector<const char *> export_list;
-       export_list.push_back(kernel_name);
-       llvm::PassManager PM;
-       PM.add(llvm::createInternalizePass(export_list));
-       PM.add(llvm::createGlobalDCEPass());
-       PM.run(*M);
-}
-
-extern "C" unsigned llvm_get_num_kernels(const unsigned char *bitcode,
-                               unsigned bitcode_len)
-{
-       LLVMModuleRef mod = llvm_parse_bitcode(bitcode, bitcode_len);
-       llvm::Module *M = llvm::unwrap(mod);
-       const llvm::NamedMDNode *kernel_node
-                               = M->getNamedMetadata("opencl.kernels");
-       unsigned kernel_count = kernel_node->getNumOperands();
-       delete M;
-       return kernel_count;
-}
-
-extern "C" LLVMModuleRef llvm_get_kernel_module(unsigned index,
-               const unsigned char *bitcode, unsigned bitcode_len)
-{
-       LLVMModuleRef mod = 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);
-       return mod;
-}
diff --git a/src/gallium/drivers/r600/llvm_wrapper.h b/src/gallium/drivers/r600/llvm_wrapper.h
deleted file mode 100644 (file)
index 4b9b93f..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef LLVM_WRAPPER_H
-#define LLVM_WRAPPER_H
-
-#include <llvm-c/Core.h>
-
-#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
index 39f9532fe40dc9efcd304f3dfb4444ac16ec633c..aa327490f444b344f4582c329ee0970f77b06ce1 100644 (file)
@@ -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/radeon/radeon_llvm_util.cpp b/src/gallium/drivers/radeon/radeon_llvm_util.cpp
new file mode 100644 (file)
index 0000000..22c6dc6
--- /dev/null
@@ -0,0 +1,62 @@
+#include <llvm/ADT/OwningPtr.h>
+#include <llvm/ADT/StringRef.h>
+#if HAVE_LLVM < 0x0303
+#include <llvm/LLVMContext.h>
+#else
+#include <llvm/IR/LLVMContext.h>
+#endif
+#include <llvm/PassManager.h>
+#include <llvm/Support/IRReader.h>
+#include <llvm/Support/MemoryBuffer.h>
+#include <llvm/Support/SourceMgr.h>
+#include <llvm/Transforms/IPO.h>
+
+#include "radeon_llvm_util.h"
+
+
+extern "C" LLVMModuleRef radeon_llvm_parse_bitcode(const unsigned char * bitcode, unsigned bitcode_len)
+{
+       llvm::OwningPtr<llvm::Module> M;
+       llvm::StringRef str((const char*)bitcode, bitcode_len);
+       llvm::MemoryBuffer*  buffer = llvm::MemoryBuffer::getMemBufferCopy(str);
+       llvm::SMDiagnostic Err;
+       M.reset(llvm::ParseIR(buffer, Err, llvm::getGlobalContext()));
+       return wrap(M.take());
+}
+
+extern "C" void radeon_llvm_strip_unused_kernels(LLVMModuleRef mod, const char *kernel_name)
+{
+       llvm::Module *M = llvm::unwrap(mod);
+       std::vector<const char *> export_list;
+       export_list.push_back(kernel_name);
+       llvm::PassManager PM;
+       PM.add(llvm::createInternalizePass(export_list));
+       PM.add(llvm::createGlobalDCEPass());
+       PM.run(*M);
+}
+
+extern "C" unsigned radeon_llvm_get_num_kernels(const unsigned char *bitcode,
+                               unsigned 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");
+       unsigned kernel_count = kernel_node->getNumOperands();
+       delete M;
+       return kernel_count;
+}
+
+extern "C" LLVMModuleRef radeon_llvm_get_kernel_module(unsigned index,
+               const unsigned char *bitcode, unsigned 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();
+       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 (file)
index 0000000..a7dfa9b
--- /dev/null
@@ -0,0 +1,20 @@
+#ifndef RADEON_LLVM_UTIL_H
+#define RADEON_LLVM_UTIL_H
+
+#include <llvm-c/Core.h>
+
+#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