Skip to content

Commit 887d0b0

Browse files
committed
Basing ordering on parents-before-children in a less ad hoc manner. Added more infrasture for having indices be expressions.
1 parent b8a4d44 commit 887d0b0

File tree

4 files changed

+153
-105
lines changed

4 files changed

+153
-105
lines changed

src/graphs.jl

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -55,23 +55,23 @@ struct LoopOrder <: AbstractArray{Vector{Operation},5}
5555
end
5656
function LoopOrder(N::Int)
5757
LoopOrder(
58-
[ Operation[] for _ 1:32N ],
58+
[ Operation[] for _ 1:8N ],
5959
Vector{Symbol}(undef, N), Vector{Symbol}(undef, N)
6060
)
6161
end
6262
LoopOrder() = LoopOrder(Vector{Operation}[],Symbol[],Symbol[])
6363
Base.empty!(lo::LoopOrder) = foreach(empty!, lo.oporder)
6464
function Base.resize!(lo::LoopOrder, N::Int)
6565
Nold = length(lo.loopnames)
66-
resize!(lo.oporder, 32N)
67-
for n 32Nold+1:32N
66+
resize!(lo.oporder, 8N)
67+
for n 8Nold+1:8N
6868
lo.oporder[n] = Operation[]
6969
end
7070
resize!(lo.loopnames, N)
7171
resize!(lo.bestorder, N)
7272
lo
7373
end
74-
Base.size(lo::LoopOrder) = (4,2,2,2,length(lo.loopnames))
74+
Base.size(lo::LoopOrder) = (2,2,2,length(lo.loopnames))
7575
Base.@propagate_inbounds Base.getindex(lo::LoopOrder, i::Int) = lo.oporder[i]
7676
Base.@propagate_inbounds Base.getindex(lo::LoopOrder, i...) = lo.oporder[LinearIndices(size(lo))[i...]]
7777

@@ -149,7 +149,7 @@ end
149149
num_loops(ls::LoopSet) = length(ls.loops)
150150
function oporder(ls::LoopSet)
151151
N = length(ls.loop_order.loopnames)
152-
reshape(ls.loop_order.oporder, (4,2,2,2,N))
152+
reshape(ls.loop_order.oporder, (2,2,2,N))
153153
end
154154
names(ls::LoopSet) = ls.loop_order.loopnames
155155
isstaticloop(ls::LoopSet, s::Symbol) = ls.loops[s].hintexact
@@ -352,7 +352,7 @@ function array_reference_meta!(ls::LoopSet, array::Symbol, rawindices, elementby
352352
parent = add_operation!(ls, gensym(:indexpr), ind, elementbytes)
353353
pushparent!(parents, loopdependencies, reduceddeps, parent)
354354
# var = get(ls.opdict, ind, nothing)
355-
indices[i] = mangledvar(parent)
355+
indices[i] = name(parent)#mangledvar(parent)
356356
else
357357
throw("Unrecognized loop index: $ind.")
358358
end
@@ -734,9 +734,9 @@ function addoptoorder!(
734734
end
735735
isunrolled = (unrolled loopdependencies(op)) + 1
736736
istiled = (loopistiled ? (tiled loopdependencies(op)) : false) + 1
737-
optype = Int(op.node_type) + 1
737+
# optype = Int(op.node_type) + 1
738738
after_loop = place_after_loop[id] + 1
739-
push!(lo[optype,isunrolled,istiled,after_loop,_n], op)
739+
push!(lo[isunrolled,istiled,after_loop,_n], op)
740740
set_upstream_family!(place_after_loop, op, false) # parents that have already been included are not moved, so no need to check included_vars to filter
741741
nothing
742742
end

0 commit comments

Comments
 (0)