gallivm: Remove lp_get_module_id.
authorJose Fonseca <jfonseca@vmware.com>
Fri, 15 Apr 2016 10:27:02 +0000 (11:27 +0100)
committerJose Fonseca <jfonseca@vmware.com>
Tue, 19 Apr 2016 10:31:26 +0000 (11:31 +0100)
Just keep a copy of the module_name in gallivm.

Reviewed-by: Roland Scheidegger <sroland@vmware.com>
src/gallium/auxiliary/gallivm/lp_bld_debug.cpp
src/gallium/auxiliary/gallivm/lp_bld_debug.h
src/gallium/auxiliary/gallivm/lp_bld_init.c
src/gallium/auxiliary/gallivm/lp_bld_init.h

index a8c3899ea6674e5516af7aa47343f0abbe13f34a..a299c8a86ddfea2698c2b40bf1ffdd015c116a5a 100644 (file)
@@ -65,13 +65,6 @@ lp_check_alignment(const void *ptr, unsigned alignment)
 }
 
 
-extern "C" const char *
-lp_get_module_id(LLVMModuleRef module)
-{
-   return llvm::unwrap(module)->getModuleIdentifier().c_str();
-}
-
-
 /**
  * Same as LLVMDumpValue, but through our debugging channels.
  */
index 375ba6cb5ff1dd1fd78848650056b5ca5298b6ba..efb7495547922969740d938ccd72ebca5e85b683 100644 (file)
@@ -76,10 +76,6 @@ lp_build_name(LLVMValueRef val, const char *format, ...)
 }
 
 
-const char *
-lp_get_module_id(LLVMModuleRef module);
-
-
 void
 lp_debug_dump_value(LLVMValueRef value);
 
index bf2b65b52cb35f52fe573209696601656438d72b..687c01f161915a4a56e84893efdd3510c24ea312 100644 (file)
@@ -187,6 +187,8 @@ gallivm_free_ir(struct gallivm_state *gallivm)
       LLVMDisposeModule(gallivm->module);
    }
 
+   FREE(gallivm->module_name);
+
    if (!USE_MCJIT) {
       /* Don't free the TargetData, it's owned by the exec engine */
    } else {
@@ -203,6 +205,7 @@ gallivm_free_ir(struct gallivm_state *gallivm)
    gallivm->engine = NULL;
    gallivm->target = NULL;
    gallivm->module = NULL;
+   gallivm->module_name = NULL;
    gallivm->passmgr = NULL;
    gallivm->context = NULL;
    gallivm->builder = NULL;
@@ -306,6 +309,15 @@ init_gallivm_state(struct gallivm_state *gallivm, const char *name,
    if (!gallivm->context)
       goto fail;
 
+   gallivm->module_name = NULL;
+   if (name) {
+      size_t size = strlen(name) + 1;
+      gallivm->module_name = MALLOC(size);
+      if (gallivm->module_name) {
+         memcpy(gallivm->module_name, name, size);
+      }
+   }
+
    gallivm->module = LLVMModuleCreateWithNameInContext(name,
                                                        gallivm->context);
    if (!gallivm->module)
@@ -574,8 +586,9 @@ gallivm_compile_module(struct gallivm_state *gallivm)
    if (gallivm_debug & GALLIVM_DEBUG_PERF) {
       int64_t time_end = os_time_get();
       int time_msec = (int)(time_end - time_begin) / 1000;
+      assert(gallivm->module_name);
       debug_printf("optimizing module %s took %d msec\n",
-                   lp_get_module_id(gallivm->module), time_msec);
+                   gallivm->module_name, time_msec);
    }
 
    /* Dump byte code to a file */
index f0155b3a2ef9398bfc0b4a1a07b9f30e7af90656..62ca0c7faa47057db3e35426bc8817809ca185d1 100644 (file)
@@ -41,6 +41,7 @@ extern "C" {
 
 struct gallivm_state
 {
+   char *module_name;
    LLVMModuleRef module;
    LLVMExecutionEngineRef engine;
    LLVMTargetDataRef target;