llvmpipe: Use pointer_to_func() instead of custom wrappers.
authorJosé Fonseca <jfonseca@vmware.com>
Sun, 30 May 2010 15:38:23 +0000 (16:38 +0100)
committerJosé Fonseca <jfonseca@vmware.com>
Sun, 30 May 2010 15:38:23 +0000 (16:38 +0100)
src/gallium/drivers/llvmpipe/lp_jit.h
src/gallium/drivers/llvmpipe/lp_state_fs.c
src/gallium/drivers/llvmpipe/lp_test_conv.c
src/gallium/drivers/llvmpipe/lp_test_format.c
src/gallium/drivers/llvmpipe/lp_test_printf.c

index 8dee041301936278d920cf984e796dec55a6ef82..8d06e65725f7d68e5471a38209de875e8020eb39 100644 (file)
@@ -169,36 +169,6 @@ typedef void
                     uint32_t *counter);
 
 
-/** cast wrapper to avoid compiler warnings */
-static INLINE lp_jit_frag_func
-cast_voidptr_to_lp_jit_frag_func(void *v)
-{
-   union {
-      void *v;
-      lp_jit_frag_func f;
-   } u;
-   assert(sizeof(u.v) == sizeof(u.f));
-   u.v = v;
-   return u.f;
-}
-
-
-/** cast wrapper */
-static INLINE void *
-cast_lp_jit_frag_func_to_voidptr(lp_jit_frag_func f)
-{
-   union {
-      void *v;
-      lp_jit_frag_func f;
-   } u;
-   assert(sizeof(u.v) == sizeof(u.f));
-   u.f = f;
-   return u.v;
-}
-
-
-
-
 void
 lp_jit_screen_cleanup(struct llvmpipe_screen *screen);
 
index a7e7451983e681e78c1d7d8f952bd29d48e9482d..0e5fd17974339e0717a850475d69e0310fef224d 100644 (file)
@@ -64,6 +64,7 @@
 #include "pipe/p_defines.h"
 #include "util/u_inlines.h"
 #include "util/u_memory.h"
+#include "util/u_pointer.h"
 #include "util/u_format.h"
 #include "util/u_dump.h"
 #include "os/os_time.h"
@@ -873,7 +874,7 @@ generate_fragment(struct llvmpipe_context *lp,
    {
       void *f = LLVMGetPointerToGlobal(screen->engine, function);
 
-      variant->jit_function[do_tri_test] = cast_voidptr_to_lp_jit_frag_func(f);
+      variant->jit_function[do_tri_test] = (lp_jit_frag_func)pointer_to_func(f);
 
       if (gallivm_debug & GALLIVM_DEBUG_ASM) {
          lp_disassemble(f);
index 254f0daea3b09c0423e34010ad97d5c0b5440919..cb0d02ab32c6832b3d058c0230d09d43aac06159 100644 (file)
@@ -34,6 +34,7 @@
  */
 
 
+#include "util/u_pointer.h"
 #include "gallivm/lp_bld_type.h"
 #include "gallivm/lp_bld_const.h"
 #include "gallivm/lp_bld_conv.h"
 
 typedef void (*conv_test_ptr_t)(const void *src, const void *dst);
 
-/** cast wrapper */
-static conv_test_ptr_t
-voidptr_to_conv_test_ptr_t(void *p)
-{
-   union {
-      void *v;
-      conv_test_ptr_t f;
-   } u;
-   u.v = p;
-   return u.f;
-}
 
 void
 write_tsv_header(FILE *fp)
@@ -234,7 +224,7 @@ test_one(unsigned verbose,
       LLVMDumpModule(module);
 
    code = LLVMGetPointerToGlobal(engine, func);
-   conv_test_ptr = voidptr_to_conv_test_ptr_t(code);
+   conv_test_ptr = (conv_test_ptr_t)pointer_to_func(code);
 
    if(verbose >= 2)
       lp_disassemble(code);
index e5f8bf9633080f9ca4bccfb7f478b2f0e2779f40..7c0d7d2e656da6a320aaea8192a1700b5961ef9e 100644 (file)
@@ -37,6 +37,7 @@
 #include <llvm-c/Transforms/Scalar.h>
 
 #include "util/u_memory.h"
+#include "util/u_pointer.h"
 #include "util/u_format.h"
 #include "util/u_format_tests.h"
 #include "util/u_format_s3tc.h"
@@ -73,19 +74,6 @@ typedef void
 (*fetch_ptr_t)(float *, const void *packed,
                unsigned i, unsigned j);
 
-/** cast wrapper to avoid warnings */
-static fetch_ptr_t
-void_to_fetch_ptr_t(void *p)
-{
-   union {
-      void *v;
-      fetch_ptr_t f;
-   } u;
-   u.v = p;
-   return u.f;
-}
-
-
 
 static LLVMValueRef
 add_fetch_rgba_test(LLVMModuleRef lp_build_module,
@@ -162,7 +150,7 @@ test_format(unsigned verbose, FILE *fp,
    (void)pass;
 #endif
 
-   fetch_ptr = void_to_fetch_ptr_t(LLVMGetPointerToGlobal(lp_build_engine, fetch));
+   fetch_ptr = (fetch_ptr_t)pointer_to_func(LLVMGetPointerToGlobal(lp_build_engine, fetch));
 
    for (i = 0; i < desc->block.height; ++i) {
       for (j = 0; j < desc->block.width; ++j) {
index 13485c377482d33b492a484adb266fdec1e21024..d99ca8163874b2ac356d4d55ea54e476fc7348dd 100644 (file)
@@ -29,6 +29,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 
+#include "util/u_pointer.h"
 #include "gallivm/lp_bld.h"
 #include "gallivm/lp_bld_printf.h"
 
@@ -58,18 +59,6 @@ write_tsv_header(FILE *fp)
 
 typedef void (*test_printf_t)(int i);
 
-/** cast wrapper */
-static test_printf_t
-voidptr_to_test_printf_t(void *p)
-{
-   union {
-      void *v;
-      test_printf_t f;
-   } u;
-   u.v = p;
-   return u.f;
-}
-
 
 static LLVMValueRef
 add_printf_test(LLVMModuleRef module)
@@ -140,7 +129,7 @@ test_printf(unsigned verbose, FILE *fp, const struct printf_test_case *testcase)
 #endif
 
    code = LLVMGetPointerToGlobal(engine, test);
-   test_printf = voidptr_to_test_printf_t(code);
+   test_printf = (test_printf_t)pointer_to_func(code);
 
    memset(unpacked, 0, sizeof unpacked);
    packed = 0;