diff --git a/src/llvm-version.h b/src/llvm-version.h index 7b8dfbbae92d6..0eb9479766919 100644 --- a/src/llvm-version.h +++ b/src/llvm-version.h @@ -14,7 +14,7 @@ #error Only LLVM versions >= 14.0.0 are supported by Julia #endif -#if JL_LLVM_VERSION >= 160000 +#if JL_LLVM_VERSION >= 150000 #define JL_LLVM_OPAQUE_POINTERS 1 #endif diff --git a/test/compiler/codegen.jl b/test/compiler/codegen.jl index 94396bf7a7a49..9aade42634d3b 100644 --- a/test/compiler/codegen.jl +++ b/test/compiler/codegen.jl @@ -130,14 +130,14 @@ if !is_debug_build && opt_level > 0 # Array test_loads_no_call(strip_debug_calls(get_llvm(sizeof, Tuple{Vector{Int}})), [Iptr]) # As long as the eltype is known we don't need to load the elsize, but do need to check isvector - @test_skip test_loads_no_call(strip_debug_calls(get_llvm(sizeof, Tuple{Array{Any}})), ["atomic $Iptr", "{} addrspace(10)* addrspace(10)*", "$Iptr addrspace(10)*", Iptr, Iptr, "{ i64, {} addrspace(10)** } addrspace(10)*", Iptr]) + @test_skip test_loads_no_call(strip_debug_calls(get_llvm(sizeof, Tuple{Array{Any}})), ["atomic $Iptr", "ptr addrspace(10)", "ptr addrspace(10)", Iptr, Iptr, "ptr addrspace(10)", Iptr]) # Memory test_loads_no_call(strip_debug_calls(get_llvm(core_sizeof, Tuple{Memory{Int}})), [Iptr]) # As long as the eltype is known we don't need to load the elsize test_loads_no_call(strip_debug_calls(get_llvm(core_sizeof, Tuple{Memory{Any}})), [Iptr]) # Check that we load the elsize and isunion from the typeof layout - test_loads_no_call(strip_debug_calls(get_llvm(core_sizeof, Tuple{Memory})), [Iptr, "atomic $Iptr", "i32*", "i32", "i16"]) - test_loads_no_call(strip_debug_calls(get_llvm(core_sizeof, Tuple{Memory})), [Iptr, "atomic $Iptr", "i32*", "i32", "i16"]) + test_loads_no_call(strip_debug_calls(get_llvm(core_sizeof, Tuple{Memory})), [Iptr, "atomic $Iptr", "ptr", "i32", "i16"]) + test_loads_no_call(strip_debug_calls(get_llvm(core_sizeof, Tuple{Memory})), [Iptr, "atomic $Iptr", "ptr", "i32", "i16"]) # Primitive Type size should be folded to a constant test_loads_no_call(strip_debug_calls(get_llvm(core_sizeof, Tuple{Ptr})), String[]) diff --git a/test/llvmpasses/names.jl b/test/llvmpasses/names.jl index 344738abc3802..6b54b094cc6ab 100644 --- a/test/llvmpasses/names.jl +++ b/test/llvmpasses/names.jl @@ -1,6 +1,6 @@ # This file is a part of Julia. License is MIT: https://julialang.org/license -# RUN: julia --startup-file=no %s %t -O && llvm-link -S %t/* -o %t/module.ll +# RUN: JULIA_LLVM_ARGS=--opaque-pointers julia --startup-file=no %s %t -O && llvm-link -S %t/* -o %t/module.ll # RUN: cat %t/module.ll | FileCheck %s ## Notes: @@ -96,12 +96,12 @@ end # CHECK: ret double # CHECK: } -# CHECK-LABEL: define nonnull {} addrspace(10)* @jfptr_f1 +# CHECK-LABEL: define nonnull ptr addrspace(10) @jfptr_f1 # CHECK-SAME: %"function::Core.Function" # CHECK-SAME: %"args::Any[]" # CHECK-SAME: %"nargs::UInt32" # CHECK: %"+Core.Float64 -# CHECK: ret {} addrspace(10)* +# CHECK: ret ptr addrspace(10) # CHECK: } emit(f1, Float64, Float64, Float64, Float64) @@ -133,22 +133,20 @@ emit(f2, Float64, Float64, Float64, Float64, Float64, Float64) # CHECK-SAME: double %"e[3]::Float64" emit(f2, Float64, Float64, Float64, Float64, Float64, Float64, Float64) -# CHECK: define {{(swiftcc )?}}nonnull {} addrspace(10)* @julia_f5 +# CHECK: define {{(swiftcc )?}}nonnull ptr addrspace(10) @julia_f5 # CHECK-SAME: %"a::A" # CHECK: %"a::A.b_ptr.c_ptr.d emit(f5, A) -# CHECK: define {{(swiftcc )?}}nonnull {} addrspace(10)* @julia_f6 +# CHECK: define {{(swiftcc )?}}nonnull ptr addrspace(10) @julia_f6 # CHECK-SAME: %"e::E" # CHECK: %jlcallframe # CHECK: %gcframe -# CHECK: %frame.nroots # CHECK: %frame.prev # CHECK: %task.gcstack # CHECK: %ptls_field # CHECK: %ptls_load # CHECK: %safepoint -# CHECK: %"e::E.f_ptr" # CHECK: %"e::E.f" # CHECK: %"e::E.f.tag_addr" # CHECK: %"e::E.f.tag" @@ -164,7 +162,7 @@ emit(f6, E) # CHECK: %"a::Tuple[2]_ptr.unbox emit(f7, Tuple{Int,Int}) -# CHECK: define {{(swiftcc )?}}nonnull {} addrspace(10)* @julia_f8 +# CHECK: define {{(swiftcc )?}}nonnull ptr addrspace(10) @julia_f8 # CHECK-SAME: %"y::Int64" # CHECK: %parent_bits # CHECK: %parent_old_marked @@ -172,7 +170,7 @@ emit(f7, Tuple{Int,Int}) # CHECK: %child_not_marked emit(f8, Barrier, Int) -# CHECK: define {{(swiftcc )?}}nonnull {} addrspace(10)* @julia_Barrier +# CHECK: define {{(swiftcc )?}}nonnull ptr addrspace(10) @julia_Barrier # CHECK-SAME: %"b::Named" # CHECK: %"new::Barrier" # CHECK: %"box::Named" @@ -180,7 +178,7 @@ emit(f8, Barrier, Int) # CHECK: %parent_old_marked emit(Barrier, Named) -# CHECK: define {{(swiftcc )?}}nonnull {} addrspace(10)* @julia_fmemory +# CHECK: define {{(swiftcc )?}}nonnull ptr addrspace(10) @julia_fmemory # CHECK-SAME: %"nel::Int64" # CHECK: %"Memory{Int64}[]" emit(fmemory, Int64)