We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 081e4ae commit 3530de6Copy full SHA for 3530de6
src/code.jl
@@ -739,12 +739,16 @@ function _cse!(mem, expr)
739
end
740
741
function cse(expr)
742
- state = Dict{Any, Int}()
743
- cse_state!(state, expr)
744
- cse_block(state, expr)
+ sorted_nodes = topological_sort(expr)
+ if isempty(sorted_nodes)
+ return Let(Assignment[], expr)
745
+ else
746
+ last_assignment = pop!(sorted_nodes)
747
+ body = rhs(last_assignment)
748
+ return Let(sorted_nodes, body)
749
+ end
750
751
-
752
function _cse(exprs::AbstractArray)
753
letblock = cse(Term{Any}(tuple, vec(exprs)))
754
letblock.pairs, reshape(arguments(letblock.body), size(exprs))
0 commit comments