@@ -756,21 +756,21 @@ function add_block!(ls::LoopSet, ex::Expr, elementbytes::Int, position::Int)
756
756
end
757
757
end
758
758
function maybestatic! (expr:: Expr )
759
- if expr. head === :call
760
- f = first (expr. args)
761
- if f === :length
762
- expr. args[1 ] = lv (:maybestaticlength )
763
- elseif f === :size && length (expr. args) == 3
764
- i = expr. args[3 ]
765
- if i isa Integer
766
- expr. args[1 ] = lv (:maybestaticsize )
767
- expr. args[3 ] = Expr (:call , Expr (:curly , :Val , convert (Int, i)))
768
- end
769
- else
770
- static_literals! (expr)
771
- end
759
+ if expr. head === :call
760
+ f = first (expr. args)
761
+ if f === :length
762
+ expr. args[1 ] = GlobalRef (ArrayInterface,:static_length )
763
+ elseif f === :size && length (expr. args) == 3
764
+ i = expr. args[3 ]
765
+ if i isa Integer
766
+ expr. args[1 ] = GlobalRef (ArrayInterface,:size )
767
+ expr. args[3 ] = staticexpr (convert (Int,i):: Int )
768
+ end
769
+ else
770
+ static_literals! (expr)
772
771
end
773
- expr
772
+ end
773
+ expr
774
774
end
775
775
add_loop_bound! (ls:: LoopSet , itersym:: Symbol , bound:: Union{Integer,Symbol} , upper:: Bool , step:: Bool ):: MaybeKnown = MaybeKnown (bound, upper ? 1024 : 1 )
776
776
function add_loop_bound! (ls:: LoopSet , itersym:: Symbol , bound:: Expr , upper:: Bool , step:: Bool ):: MaybeKnown
@@ -797,7 +797,7 @@ function range_loop!(ls::LoopSet, itersym::Symbol, l::MaybeKnown, u::MaybeKnown,
797
797
isone (s) || pushexpr! (range, s)
798
798
pushexpr! (range, u)
799
799
pushprepreamble! (ls, Expr (:(= ), rangename, range))
800
- pushprepreamble! (ls, Expr (:(= ), lenname, Expr (:call , lv ( :maybestaticlength ), rangename)))
800
+ pushprepreamble! (ls, Expr (:(= ), lenname, Expr (:call , GlobalRef (ArrayInterface, :static_length ), rangename)))
801
801
Loop (itersym, l, u, s, rangename, lenname)
802
802
end
803
803
function range_loop! (ls:: LoopSet , r:: Expr , itersym:: Symbol ):: Loop
853
853
function misc_loop! (ls:: LoopSet , r:: Union{Expr,Symbol} , itersym:: Symbol , staticstepone:: Bool ):: Loop
854
854
rangename = gensym! (ls, " looprange" * string (itersym)); lenname = gensym! (ls, " looplen" * string (itersym));
855
855
pushprepreamble! (ls, Expr (:(= ), rangename, Expr (:call , lv (:canonicalize_range ), :(@inbounds $ (static_literals! (r))))))
856
- pushprepreamble! (ls, Expr (:(= ), lenname, Expr (:call , lv ( :maybestaticlength ), rangename)))
856
+ pushprepreamble! (ls, Expr (:(= ), lenname, Expr (:call , GlobalRef (ArrayInterface, :static_length ), rangename)))
857
857
L = add_loop_bound! (ls, itersym, Expr (:call , lv (:maybestaticfirst ), rangename), false , false )
858
858
U = add_loop_bound! (ls, itersym, Expr (:call , lv (:maybestaticlast ), rangename), true , false )
859
859
if staticstepone
0 commit comments