From 5c018bcae797c8ec8631d017897a328d6e77620c Mon Sep 17 00:00:00 2001 From: Mike J Innes Date: Tue, 7 Jun 2016 17:00:09 +0100 Subject: [PATCH] split out delay node grabber --- src/compiler/loop.jl | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/compiler/loop.jl b/src/compiler/loop.jl index f4493bbd..2b664012 100644 --- a/src/compiler/loop.jl +++ b/src/compiler/loop.jl @@ -1,9 +1,14 @@ -function cut_forward(v::IVertex) - pushes = [] +function delays(v::IVertex) + ds = [] Flow.prefor(v) do w value(w) == :Delay && - push!(pushes, vertex(:push!, vertex(:(self.delay)), w[1])) + push!(ds, w) end + return ds +end + +function cut_forward(v::IVertex) + pushes = map(x->vertex(:push!, vertex(:(self.delay)), v[1]), delays(v)) isempty(pushes) && return v @assert length(pushes) == 1 v = vertex(Flow.Do(), pushes..., v)