if R600_NEED_RADEON_GALLIUM
libr600_la_SOURCES += \
- $(LLVM_C_SOURCES) \
- $(LLVM_CXX_SOURCES)
+ $(LLVM_C_SOURCES)
libr600_la_LIBADD = ../radeon/libllvmradeon@VERSION@.la
$(LLVM_CFLAGS) \
-I$(top_srcdir)/src/gallium/drivers/radeon/
-AM_CXXFLAGS= \
- $(LLVM_CXXFLAGS) \
- $(DEFINES)
endif
if USE_R600_LLVM_COMPILER
compute_memory_pool.c
LLVM_C_SOURCES = r600_llvm.c
-LLVM_CXX_SOURCES = llvm_wrapper.cpp
#include "evergreen_compute_internal.h"
#include "compute_memory_pool.h"
#ifdef HAVE_OPENCL
-#include "llvm_wrapper.h"
+#include "radeon_llvm_util.h"
#endif
/**
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
+++ /dev/null
-#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;
-}
+++ /dev/null
-#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
CPP_FILES := \
- radeon_llvm_emit.cpp
+ radeon_llvm_emit.cpp \
+ radeon_llvm_util.cpp
C_FILES := \
radeon_setup_tgsi_llvm.c
--- /dev/null
+#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;
+
+}
--- /dev/null
+#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