@@ -790,41 +790,4 @@ function cse(x::MakeSparseArray)
790790 end
791791end
792792
793-
794- function cse_state! (state, t)
795- ! iscall (t) && return t
796- state[t] = Base. get (state, t, 0 ) + 1
797- foreach (x-> cse_state! (state, x), arguments (t))
798- end
799-
800- function cse_block! (assignments, counter, names, name, state, x)
801- if get (state, x, 0 ) > 1
802- if haskey (names, x)
803- return names[x]
804- else
805- sym = Sym {symtype(x)} (Symbol (name, counter[]))
806- names[x] = sym
807- push! (assignments, sym ← x)
808- counter[] += 1
809- return sym
810- end
811- elseif iscall (x)
812- args = map (a-> cse_block! (assignments, counter, names, name, state,a), arguments (x))
813- if isterm (x)
814- return term (operation (x), args... )
815- else
816- return maketerm (typeof (x), operation (x), args, metadata (x))
817- end
818- else
819- return x
820- end
821- end
822-
823- function cse_block (state, t, name= Symbol (" var-" , hash (t)))
824- assignments = Assignment[]
825- counter = Ref {Int} (1 )
826- names = Dict {Any, BasicSymbolic} ()
827- Let (assignments, cse_block! (assignments, counter, names, name, state, t))
828- end
829-
830793end
0 commit comments