Skip to content

Commit b0fc499

Browse files
committed
Fix a couple choose_order tests, new precompile.jl.
1 parent a2b1ac8 commit b0fc499

File tree

5 files changed

+26
-23
lines changed

5 files changed

+26
-23
lines changed

src/broadcast.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ function add_broadcast!(
203203
end
204204
function add_broadcast!(
205205
ls::LoopSet, destname::Symbol, bcname::Symbol, loopsyms::Vector{Symbol},
206-
::Type{SubArray{T,N,A,S,B}}, elementbytes::Int
206+
@nospecialize(::Type{SubArray{T,N,A,S,B}}), elementbytes::Int
207207
) where {T,N,N2,A<:AbstractArray{T,N2},B,N3,S <: Tuple{Int,Vararg{Any,N3}}}
208208
inds = Vector{Symbol}(undef, N+1)
209209
inds[1] = Symbol("##DISCONTIGUOUSSUBARRAY##")

src/filter.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@ if (Base.libllvm_version ≥ v"7" && VectorizationBase.AVX512F) || Base.libllvm_
2525
end
2626
x
2727
end
28-
vfilter!(f, x::Vector{T}) where {T<:NativeTypes} = vfilter!(f, x, x)
29-
vfilter(f, y::AbstractArray{T}) where {T<:NativeTypes} = vfilter!(f, Vector{T}(undef, length(y)), y)
28+
vfilter!(f::F, x::Vector{T}) where {F, T<:NativeTypes} = vfilter!(f, x, x)
29+
vfilter(f::F, y::AbstractArray{T}) where {F, T<:NativeTypes} = vfilter!(f, Vector{T}(undef, length(y)), y)
3030
end
31-
vfilter(f, y) = filter(f, y)
32-
vfilter!(f, y) = filter!(f, y)
31+
vfilter(f::F, y) where {F} = filter(f, y)
32+
vfilter!(f::F, y) where {F} = filter!(f, y)
3333

3434
"""
3535
vfilter(f, a::AbstractArray)

src/precompile.jl

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,33 @@
11
function _precompile_()
22
ccall(:jl_generating_output, Cint, ()) == 1 || return nothing
33

4-
precompile(Tuple{Type{LoopVectorization.LoopSet},Array{Symbol,1},Array{Int64,1},Array{LoopVectorization.Loop,1},Dict{Symbol,LoopVectorization.Operation},Array{LoopVectorization.Operation,1},Array{Int64,1},Array{Int64,1},LoopVectorization.LoopOrder,Expr,Expr,Array{Tuple{Int64,Symbol},1},Array{Tuple{Int64,Int64},1},Array{Tuple{Int64,Float64},1},Array{Int64,1},Array{Int64,1},Array{Symbol,1},Array{Symbol,1},Array{Symbol,1},Array{LoopVectorization.ArrayReferenceMeta,1},Array{Float64,2},Array{Float64,2},Array{Bool,1},Array{Bool,1},Base.RefValue{LoopVectorization.UnrollSpecification},Base.RefValue{Bool},Base.RefValue{LoopVectorization.LoopStartStopManager},Base.RefValue{Int64},Base.RefValue{Bool},Symbol})
4+
precompile(Tuple{Type{LoopVectorization.ArrayRefStruct},LoopVectorization.LoopSet,LoopVectorization.ArrayReferenceMeta,Vector{Symbol},Vector{Int64}})
55
precompile(Tuple{Type{LoopVectorization.LoopSet},Expr,Symbol})
6-
precompile(Tuple{Type{LoopVectorization.Loop},LoopVectorization.LoopSet,Expr,Symbol,Type{VectorizationBase.StaticLowerUnitRange{1}}})
6+
precompile(Tuple{Type{LoopVectorization.LoopSet},Symbol})
7+
precompile(Tuple{Type{Vector{Tuple{Int64,LoopVectorization.NumberType}}},Vector{Int64}})
8+
precompile(Tuple{typeof(Base._mapreduce),Base.ComposedFunction{Type{Float64},typeof(length)},typeof(Base.mul_prod),IndexLinear,Vector{LoopVectorization.Loop}})
79
precompile(Tuple{typeof(LoopVectorization._avx_loopset),Core.SimpleVector,Core.SimpleVector,Core.SimpleVector,Core.SimpleVector,Core.SimpleVector,Any})
10+
precompile(Tuple{typeof(LoopVectorization.add_broadcast!),LoopVectorization.LoopSet,Symbol,Symbol,Vector{Symbol},Type{Vector{Float64}},Int64})
811
precompile(Tuple{typeof(LoopVectorization.add_compute!),LoopVectorization.LoopSet,Symbol,Expr,Int64,Int64,LoopVectorization.ArrayReferenceMetaPosition})
912
precompile(Tuple{typeof(LoopVectorization.add_compute!),LoopVectorization.LoopSet,Symbol,Expr,Int64,Int64,Nothing})
10-
precompile(Tuple{typeof(LoopVectorization.add_constant!),LoopVectorization.LoopSet,Float64,Array{Symbol,1},Symbol,Int64})
11-
precompile(Tuple{typeof(LoopVectorization.add_constant_offset_load_elmination_cost!),SubArray{Float64,1,Array{Float64,2},Tuple{Base.Slice{Base.OneTo{Int64}},Int64},true},SubArray{Float64,1,Array{Float64,2},Tuple{Base.Slice{Base.OneTo{Int64}},Int64},true},Base.RefValue{Bool},LoopVectorization.LoopSet,LoopVectorization.Operation,Float64,LoopVectorization.UnrollSymbols,Bool,Bool,Int64,Int64,Bool})
13+
precompile(Tuple{typeof(LoopVectorization.add_constant!),LoopVectorization.LoopSet,Float64,Vector{Symbol},Symbol,Int64})
1214
precompile(Tuple{typeof(LoopVectorization.add_if!),LoopVectorization.LoopSet,Symbol,Expr,Int64,Int64,LoopVectorization.ArrayReferenceMetaPosition})
13-
precompile(Tuple{typeof(LoopVectorization.add_if!),LoopVectorization.LoopSet,Symbol,Expr,Int64,Int64,Nothing})
14-
precompile(Tuple{typeof(LoopVectorization.add_mref!),LoopVectorization.LoopSet,LoopVectorization.ArrayReferenceMeta,Int64,Type{VectorizationBase.PermutedDimsStridedPointer{(2, 1),(2, 1),Float64,VectorizationBase.PackedStridedPointer{Float64,1}}},Symbol})
15-
precompile(Tuple{typeof(LoopVectorization.add_pow!),LoopVectorization.LoopSet,Symbol,Symbol,Int64,Int64,Int64})
16-
precompile(Tuple{typeof(LoopVectorization.argmeta_and_consts_description),LoopVectorization.LoopSet,Array{Symbol,1}})
17-
precompile(Tuple{typeof(LoopVectorization.array_reference_meta!),LoopVectorization.LoopSet,Symbol,SubArray{Any,1,Array{Any,1},Tuple{UnitRange{Int64}},true},Int64,Nothing})
18-
precompile(Tuple{typeof(LoopVectorization.choose_tile),LoopVectorization.LoopSet})
15+
precompile(Tuple{typeof(LoopVectorization.add_load!),LoopVectorization.LoopSet,LoopVectorization.Operation,Bool,Bool})
16+
precompile(Tuple{typeof(LoopVectorization.add_mref!),LoopVectorization.LoopSet,LoopVectorization.ArrayReferenceMeta,Int64,Type{VectorizationBase.PermutedDimsStridedPointer{(4, 2, 3, 1),(4, 2, 3, 1),Float64,VectorizationBase.PermutedDimsStridedPointer{(3, 1, 4, 2),(2, 4, 1, 3),Float64,VectorizationBase.PackedStridedPointer{Float64,3}}}},Symbol})
17+
precompile(Tuple{typeof(LoopVectorization.add_pow!),LoopVectorization.LoopSet,Symbol,Expr,Float64,Int64,Int64})
18+
precompile(Tuple{typeof(LoopVectorization.add_pow!),LoopVectorization.LoopSet,Symbol,Expr,Int64,Int64,Int64})
19+
precompile(Tuple{typeof(LoopVectorization.argmeta_and_consts_description),LoopVectorization.LoopSet,Vector{Symbol}})
20+
precompile(Tuple{typeof(LoopVectorization.array_reference_meta!),LoopVectorization.LoopSet,Symbol,SubArray{Any,1,Vector{Any},Tuple{UnitRange{Int64}},true},Int64,Nothing})
21+
precompile(Tuple{typeof(LoopVectorization.avx_loopset),Vector{LoopVectorization.Instruction},Vector{LoopVectorization.OperationStruct},Vector{LoopVectorization.ArrayRefStruct},Core.SimpleVector,Core.SimpleVector,Core.SimpleVector,Any})
22+
precompile(Tuple{typeof(LoopVectorization.check_macro_kwarg),Expr})
1923
precompile(Tuple{typeof(LoopVectorization.cost_vec_buf),LoopVectorization.LoopSet})
20-
precompile(Tuple{typeof(LoopVectorization.determine_unroll_factor),LoopVectorization.LoopSet,Array{Symbol,1},Symbol,Symbol})
21-
precompile(Tuple{typeof(LoopVectorization.evaluate_cost_tile),LoopVectorization.LoopSet,Array{Symbol,1},LoopVectorization.UnrollSymbols})
22-
precompile(Tuple{typeof(LoopVectorization.evaluate_cost_unroll),LoopVectorization.LoopSet,Array{Symbol,1},Symbol,Float64})
24+
precompile(Tuple{typeof(LoopVectorization.evaluate_cost_tile),LoopVectorization.LoopSet,Vector{Symbol},LoopVectorization.UnrollSymbols})
25+
precompile(Tuple{typeof(LoopVectorization.evaluate_cost_unroll),LoopVectorization.LoopSet,Vector{Symbol},Symbol,Float64})
2326
precompile(Tuple{typeof(LoopVectorization.generate_call),LoopVectorization.LoopSet,Tuple{Int8,Int8,Int8},Bool})
2427
precompile(Tuple{typeof(LoopVectorization.pushop!),LoopVectorization.LoopSet,LoopVectorization.Operation,Symbol})
25-
precompile(Tuple{typeof(LoopVectorization.stride_penalty),LoopVectorization.LoopSet,LoopVectorization.Operation,Array{Symbol,1},Array{Int64,1}})
28+
precompile(Tuple{typeof(LoopVectorization.reject_candidate),LoopVectorization.Operation,Symbol,Symbol})
29+
precompile(Tuple{typeof(LoopVectorization.stride_penalty),LoopVectorization.LoopSet,Vector{Symbol}})
2630
precompile(Tuple{typeof(LoopVectorization.substitute_broadcast),Expr,Symbol})
27-
precompile(Tuple{typeof(println),Base.GenericIOBuffer{Array{UInt8,1}},Array{LoopVectorization.Operation,1}})
31+
precompile(Tuple{typeof(println),IOBuffer,Vector{LoopVectorization.Operation}})
2832
precompile(Tuple{typeof(push!),LoopVectorization.LoopSet,Expr,Int64,Int64})
2933
end
30-

test/gemm.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,7 @@
336336
end);
337337
lsr2amb = LoopVectorization.LoopSet(r2ambq);
338338
if LoopVectorization.REGISTER_COUNT == 32
339-
@test LoopVectorization.choose_order(lsr2amb) == ([:m, :n, :k], :n, :m, :m, 7, 3)
339+
@test LoopVectorization.choose_order(lsr2amb) == ([:n, :m, :k], :n, :m, :m, 7, 3)
340340
elseif LoopVectorization.REGISTER_COUNT == 16
341341
@test LoopVectorization.choose_order(lsr2amb) == ([:m, :n, :k], :n, :m, :m, 4, 2)
342342
end

test/miscellaneous.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ using Test
144144
lsvar = LoopVectorization.LoopSet(varq);
145145
# LoopVectorization.choose_order(lsvar)
146146
# @test LoopVectorization.choose_order(lsvar) == (Symbol[:j,:i], :j, :i, :j, Unum, Tnum)
147-
@test LoopVectorization.choose_order(lsvar) == (Symbol[:j,:i], :j, Symbol("##undefined##"), :j, 8, -1)
147+
@test LoopVectorization.choose_order(lsvar) == (Symbol[:j,:i], :j, Symbol("##undefined##"), :j, 4, -1)
148148
# if LoopVectorization.REGISTER_COUNT == 32
149149
# @test LoopVectorization.choose_order(lsvar) == (Symbol[:j,:i], :j, :i, :j, 2, 10)
150150
# elseif LoopVectorization.REGISTER_COUNT == 16

0 commit comments

Comments
 (0)