ac/llvm: add better code for fsign
[mesa.git] / src / amd / llvm / ac_llvm_util.c
index 29f9352b886f9e0dbcf3614621c10c35e69431e7..c7c8b991756ef5c882a44e6c1848ca4ed061e56c 100644 (file)
@@ -78,12 +78,29 @@ static void ac_init_llvm_target()
        LLVMParseCommandLineOptions(ARRAY_SIZE(argv), argv, NULL);
 }
 
-PUBLIC void ac_init_llvm_once(void)
+PUBLIC void ac_init_shared_llvm_once(void)
 {
        static once_flag ac_init_llvm_target_once_flag = ONCE_FLAG_INIT;
        call_once(&ac_init_llvm_target_once_flag, ac_init_llvm_target);
 }
 
+#if !LLVM_IS_SHARED
+static once_flag ac_init_static_llvm_target_once_flag = ONCE_FLAG_INIT;
+static void ac_init_static_llvm_once(void)
+{
+       call_once(&ac_init_static_llvm_target_once_flag, ac_init_llvm_target);
+}
+#endif
+
+void ac_init_llvm_once(void)
+{
+#if LLVM_IS_SHARED
+       ac_init_shared_llvm_once();
+#else
+       ac_init_static_llvm_once();
+#endif
+}
+
 static LLVMTargetRef ac_get_llvm_target(const char *triple)
 {
        LLVMTargetRef target = NULL;