spot pushed to gambas3 (master). "more llvm 3.6 fixes"
notifications at fedoraproject.org
notifications at fedoraproject.org
Fri Apr 17 19:22:33 UTC 2015
>From 9f50817a11b80eb18d86f3701dfc51b4ad7bb89b Mon Sep 17 00:00:00 2001
From: Tom Callaway <spot at fedoraproject.org>
Date: Fri, 17 Apr 2015 15:22:07 -0400
Subject: more llvm 3.6 fixes
diff --git a/gambas3-3.7.1-llvm-3.6.patch b/gambas3-3.7.1-llvm-3.6.patch
index ff54dc9..cd70792 100644
--- a/gambas3-3.7.1-llvm-3.6.patch
+++ b/gambas3-3.7.1-llvm-3.6.patch
@@ -12,6 +12,87 @@ diff -up gambas3-3.7.1/gb.jit/configure.ac.llvm36 gambas3-3.7.1/gb.jit/configure
dnl llvm-config file can be forced with LLVM_CONFIG env var
if test "x$LLVM_CONFIG" = x; then
+diff -up gambas3-3.7.1/gb.jit/src/jit_codegen.cpp.llvm36 gambas3-3.7.1/gb.jit/src/jit_codegen.cpp
+--- gambas3-3.7.1/gb.jit/src/jit_codegen.cpp.llvm36 2015-04-17 15:02:57.281839985 -0400
++++ gambas3-3.7.1/gb.jit/src/jit_codegen.cpp 2015-04-17 15:18:23.868217606 -0400
+@@ -984,7 +984,11 @@ static void unref_string_no_nullcheck(ll
+ llvm::Value* slt = builder->CreateICmpSLT(ref, getInteger(32, 1));
+ if (llvm::Instruction* inst = llvm::dyn_cast<llvm::Instruction>(slt)){
+ llvm::Value* arr[1] = {getInteger(32, 1)};
++#if (LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 6)
++ inst->setMetadata("unref_slt", llvm::MDNode::get(llvm_context, llvm::ArrayRef<Metadata*>(arr)));
++#else
+ inst->setMetadata("unref_slt", llvm::MDNode::get(llvm_context, arr));
++#endif
+ }
+ gen_if(slt, [&](){
+ llvm::Value* free_func = get_global_function_jif(STRING_free_real, 'v', "p");
+@@ -1013,7 +1017,11 @@ static void unref_object_no_nullcheck(ll
+ llvm::Value* slt = builder->CreateICmpSLT(ref, getInteger(TARGET_BITS, 1));
+ if (llvm::Instruction* inst = llvm::dyn_cast<llvm::Instruction>(slt)){
+ llvm::Value* arr[1] = {getInteger(32, 1)};
++#if (LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 6)
++ inst->setMetadata("unref_slt", llvm::MDNode::get(llvm_context, llvm::ArrayRef<Metadata*>(arr)));
++#else
+ inst->setMetadata("unref_slt", llvm::MDNode::get(llvm_context, arr));
++#endif
+ }
+ gen_if(slt, [&](){
+ llvm::Value* free_func = get_global_function_jif(CLASS_free, 'v', "p");
+@@ -3657,7 +3665,11 @@ void EndTryExpression::codegen(){
+
+ if (llvm::Instruction* inst = llvm::dyn_cast<llvm::Instruction>(call)){
+ llvm::Value* arr[1] = {getInteger(32, 1)};
++#if (LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 6)
++ inst->setMetadata("end_try", llvm::MDNode::get(llvm_context, llvm::ArrayRef<Metadata*>(arr)));
++#else
+ inst->setMetadata("end_try", llvm::MDNode::get(llvm_context, arr));
++#endif
+ }
+
+ builder->CreateStore(get_nullptr(), get_global((void*)&EP));
+@@ -6472,7 +6484,11 @@ void ReturnExpression::codegen(){
+
+ if (llvm::Instruction* inst = llvm::dyn_cast<llvm::Instruction>(call)){
+ llvm::Value* arr[1] = {getInteger(32, 1)};
++#if (LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 6)
++ inst->setMetadata("large_end_try", llvm::MDNode::get(llvm_context, llvm::ArrayRef<Metadata*>(arr)));
++#else
+ inst->setMetadata("large_end_try", llvm::MDNode::get(llvm_context, arr));
++#endif
+ }
+ }, "return_in_large_try");
+ }
+@@ -6674,7 +6690,11 @@ static void func_extern_call_variant_var
+ M->setTargetTriple("i386-unknown-linux-gnu");
+ M->setDataLayout("e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32-S128");
+ }
++#if (LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 6)
++ EE->addModule(std::unique_ptr<Module>(M));
++#else
+ EE->addModule(M);
++#endif
+
+ static char buf[256] = "extern_func_caller_";
+ int eob = strlen("extern_func_caller_");
+@@ -6873,9 +6893,17 @@ void JIT_codegen(){
+ M->setDataLayout("e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32-S128");
+ }
+ if (EE)
++#if (LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 6)
++ EE->addModule(std::unique_ptr<Module>(M));
++#else
+ EE->addModule(M);
++#endif
+ else
++#if (LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 6)
++ EE = llvm::EngineBuilder(std::unique_ptr<Module>(M))/*.setOptLevel(llvm::CodeGenOpt::Aggressive)*/.create();
++#else
+ EE = llvm::EngineBuilder(M)/*.setOptLevel(llvm::CodeGenOpt::Aggressive)*/.create();
++#endif
+
+
+ static int counter = 0;
diff -up gambas3-3.7.1/gb.jit/src/jit.h.llvm36 gambas3-3.7.1/gb.jit/src/jit.h
--- gambas3-3.7.1/gb.jit/src/jit.h.llvm36 2015-04-15 12:58:54.040999418 -0400
+++ gambas3-3.7.1/gb.jit/src/jit.h 2015-04-15 13:01:48.902093066 -0400
--
cgit v0.10.2
http://pkgs.fedoraproject.org/cgit/gambas3.git/commit/?h=master&id=9f50817a11b80eb18d86f3701dfc51b4ad7bb89b
More information about the scm-commits
mailing list