summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/gallivm
diff options
context:
space:
mode:
authorJosé Fonseca <[email protected]>2012-04-25 16:35:05 +0100
committerJosé Fonseca <[email protected]>2012-05-02 10:24:34 +0100
commit494619ebacb632a879ebeecf0a1d732c10ddf25b (patch)
treefddc0b030d87b07b212792acffca8342930d40b9 /src/gallium/auxiliary/gallivm
parent9ad2cb18857c1cd75ab073e8662700d1761c20ac (diff)
gallivm: Use debug_printf in lp_build_printf.
So that its output can be seen on GUI window apps. Tested-by: James Benton <[email protected]> Reviewed-by: Roland Scheidegger <[email protected]>
Diffstat (limited to 'src/gallium/auxiliary/gallivm')
-rw-r--r--src/gallium/auxiliary/gallivm/lp_bld_printf.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_printf.c b/src/gallium/auxiliary/gallivm/lp_bld_printf.c
index 806b8e0d085..5e359ceaa20 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_printf.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_printf.c
@@ -81,17 +81,20 @@ lp_build_printf(struct gallivm_state *gallivm, const char *fmt, ...)
int argcount = lp_get_printf_arg_count(fmt);
LLVMBuilderRef builder = gallivm->builder;
LLVMContextRef context = gallivm->context;
- LLVMModuleRef module = gallivm->module;
LLVMValueRef params[50];
LLVMValueRef fmtarg = lp_build_const_string(gallivm, fmt);
- LLVMValueRef func_printf = LLVMGetNamedFunction(module, "printf");
+ LLVMTypeRef printf_type;
+ LLVMValueRef func_printf;
assert(Elements(params) >= argcount + 1);
- if (!func_printf) {
- LLVMTypeRef printf_type = LLVMFunctionType(LLVMIntTypeInContext(context, 32), NULL, 0, 1);
- func_printf = LLVMAddFunction(module, "printf", printf_type);
- }
+ printf_type = LLVMFunctionType(LLVMIntTypeInContext(context, 32), NULL, 0, 1);
+
+ func_printf = lp_build_const_int_pointer(gallivm, func_to_pointer((func_pointer)debug_printf));
+
+ func_printf = LLVMBuildBitCast(gallivm->builder, func_printf,
+ LLVMPointerType(printf_type, 0),
+ "debug_printf");
params[0] = fmtarg;