summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/r600/r600_llvm.h
blob: 3f7fc4bef7e2b811b64a116b68a5e872e7b40943 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

#ifndef R600_LLVM_H
#define R600_LLVM_H

#if defined R600_USE_LLVM || defined HAVE_OPENCL

#include "radeon/radeon_llvm.h"
#include <llvm-c/Core.h>

struct pipe_debug_callback;
struct r600_bytecode;
struct r600_shader_ctx;
struct radeon_llvm_context;
struct radeon_shader_binary;
enum radeon_family;

LLVMModuleRef r600_tgsi_llvm(
	struct radeon_llvm_context * ctx,
	const struct tgsi_token * tokens);

unsigned r600_llvm_compile(
	LLVMModuleRef mod,
	enum radeon_family family,
	struct r600_bytecode *bc,
	boolean *use_kill,
	unsigned dump,
	struct pipe_debug_callback *debug);

unsigned r600_create_shader(struct r600_bytecode *bc,
		const struct radeon_shader_binary *binary,
		boolean *use_kill);

void r600_destroy_shader(struct r600_bytecode *bc);

void r600_shader_binary_read_config(const struct radeon_shader_binary *binary,
		struct r600_bytecode *bc,
		uint64_t symbol_offset,
		boolean *use_kill);

#endif /* defined R600_USE_LLVM || defined HAVE_OPENCL */

#endif /* R600_LLVM_H */