ac: move all LLVM module initialization into ac_create_module
[mesa.git] / src / gallium / drivers / radeonsi / si_pipe.c
index 8f16b2bf8e69af28d7aaff7e9f886a07479df494..5da8a4b9873150c44fb87563a324979fdcb17bf0 100644 (file)
 #include "si_shader_internal.h"
 #include "sid.h"
 
+#include "ac_llvm_util.h"
 #include "radeon/radeon_uvd.h"
 #include "gallivm/lp_bld_misc.h"
 #include "util/disk_cache.h"
-#include "util/hash_table.h"
 #include "util/u_log.h"
 #include "util/u_memory.h"
 #include "util/u_suballoc.h"
@@ -119,13 +119,14 @@ static void si_init_compiler(struct si_screen *sscreen,
                (sscreen->info.chip_class < GFX9 ? AC_TM_FORCE_DISABLE_XNACK : 0) |
                (!sscreen->llvm_has_working_vgpr_indexing ? AC_TM_PROMOTE_ALLOCA_TO_SCRATCH : 0);
 
+       const char *triple;
        compiler->tm = ac_create_target_machine(sscreen->info.family,
-                                               tm_options, &compiler->triple);
+                                               tm_options, &triple);
        if (!compiler->tm)
                return;
 
        compiler->target_library_info =
-               gallivm_create_target_library_info(compiler->triple);
+               gallivm_create_target_library_info(triple);
        if (!compiler->target_library_info)
                return;
 
@@ -150,19 +151,10 @@ static void si_init_compiler(struct si_screen *sscreen,
        /* This is recommended by the instruction combining pass. */
        LLVMAddEarlyCSEMemSSAPass(compiler->passmgr);
        LLVMAddInstructionCombiningPass(compiler->passmgr);
-
-       /* Get the data layout. */
-       LLVMTargetDataRef data_layout = LLVMCreateTargetDataLayout(compiler->tm);
-       if (!data_layout)
-               return;
-       compiler->data_layout = LLVMCopyStringRepOfTargetData(data_layout);
-       LLVMDisposeTargetData(data_layout);
 }
 
 static void si_destroy_compiler(struct si_compiler *compiler)
 {
-       if (compiler->data_layout)
-               LLVMDisposeMessage((char*)compiler->data_layout);
        if (compiler->passmgr)
                LLVMDisposePassManager(compiler->passmgr);
 #if HAVE_LLVM >= 0x0700
@@ -866,7 +858,7 @@ struct pipe_screen *radeonsi_screen_create(struct radeon_winsys *ws,
                ac_print_gpu_info(&sscreen->info);
 
        slab_create_parent(&sscreen->pool_transfers,
-                          sizeof(struct r600_transfer), 64);
+                          sizeof(struct si_transfer), 64);
 
        sscreen->force_aniso = MIN2(16, debug_get_num_option("R600_TEX_ANISO", -1));
        if (sscreen->force_aniso >= 0) {