diff --git a/.buildkite/pipeline.yml b/.buildkite/pipeline.yml index 43999a1df..015aebeb0 100644 --- a/.buildkite/pipeline.yml +++ b/.buildkite/pipeline.yml @@ -5,6 +5,8 @@ steps: version: - "1.10" - "1.11" + - "1.12" + - "1.13" plugins: - JuliaCI/julia#v1: version: "{{matrix.version}}" @@ -14,8 +16,7 @@ steps: julia -e 'println("--- :julia: Instantiating project") using Pkg Pkg.develop(; path=pwd()) - Pkg.develop(; name="CUDA")' || exit 3 - + Pkg.add(url="https://github.com/eschnett/CUDA.jl", rev="eschnett/julia-1.13")' || exit 3 julia -e 'println("+++ :julia: Running tests") using Pkg Pkg.test("CUDA"; coverage=true, test_args=["base/kernelabstractions"])' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f80d0651b..c7df8a00f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,7 +27,9 @@ jobs: - '1.8' - '1.9' - '1.10' - - '~1.11.0-0' + - '1.11' + - '1.12' + - '1.13-nightly' os: - ubuntu-latest - macOS-latest diff --git a/test/compiler.jl b/test/compiler.jl index 85312262e..fac078ab8 100644 --- a/test/compiler.jl +++ b/test/compiler.jl @@ -24,11 +24,19 @@ end A[1] = Base.Checked.checked_add(a, b) end +@static if VERSION > v"1.12" + const MethodOrCodeInstance = Core.CodeInstance + _getname(mi) = mi.def.def.name +else + const MethodOrCodeInstance = Core.MethodInstance + _getname(mi) = mi.def.name +end + function check_for_overdub(stmt) if stmt isa Expr if stmt.head == :invoke - mi = first(stmt.args)::Core.MethodInstance - if mi.def.name === :overdub + mi = first(stmt.args)::MethodOrCodeInstance + if _getname(mi) === :overdub @show stmt return true end diff --git a/test/runtests.jl b/test/runtests.jl index bf9b445a5..f395b70dc 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -36,7 +36,7 @@ if Base.JLOptions().check_bounds == 0 || Base.JLOptions().check_bounds == 1 end if Base.JLOptions().check_bounds == 0 || Base.JLOptions().check_bounds == 2 - @kernel inbounds = true function my_bounded_kernel(a) + @kernel inbounds = true function my_inbounds_kernel(a) idx = @index(Global, Linear) a[idx] = 0 end @@ -73,7 +73,8 @@ struct NewBackend <: KernelAbstractions.GPU end end include("extensions/enzyme.jl") -@static if VERSION >= v"1.7.0" +# The Enzyme tests fail with Julia 1.13. They also fail with Julia 1.12 on Windows. +@static if VERSION >= v"1.7.0" && VERSION < v"1.13-" && !(Sys.iswindows() && VERSION >= v"1.12-") @testset "Enzyme" begin enzyme_testsuite(CPU, Array) end diff --git a/test/test.jl b/test/test.jl index 8e3bd7136..d0d3e1d07 100644 --- a/test/test.jl +++ b/test/test.jl @@ -206,7 +206,11 @@ function unittest_testsuite(Backend, backend_str, backend_mod, BackendArrayT; sk @test occursin("!alias.scope", IR) @test occursin("!noalias", IR) elseif backend_str == "CUDA" - @test occursin("@llvm.nvvm.ldg", IR) + if Base.libllvm_version >= v"20" + @test occursin("addrspace(1)", IR) + else + @test occursin("@llvm.nvvm.ldg", IR) + end elseif backend_str == "ROCM" @test occursin("addrspace(4)", IR) else