File tree Expand file tree Collapse file tree 1 file changed +10
-2
lines changed
Expand file tree Collapse file tree 1 file changed +10
-2
lines changed Original file line number Diff line number Diff line change @@ -258,6 +258,10 @@ def _toposort(exprs):
258258 """
259259 Ensure the expression list is topologically sorted.
260260 """
261+ if not any (isinstance (e .lhs , CTemp ) for e in exprs ):
262+ # Not CSE temps, no need to topologically sort
263+ return exprs
264+
261265 dag = DAG (exprs )
262266
263267 for e0 in exprs :
@@ -270,8 +274,12 @@ def _toposort(exprs):
270274
271275 def choose_element (queue , scheduled ):
272276 # Try to honor temporary names as much as possible
273- first = sorted (queue , key = lambda i : str (i .lhs )).pop (0 )
274- queue .remove (first )
277+ tmps = [i for i in queue if isinstance (i .lhs , CTemp )]
278+ if tmps :
279+ first = sorted (tmps , key = lambda i : str (i .lhs )).pop (0 )
280+ queue .remove (first )
281+ else :
282+ first = queue .pop ()
275283 return first
276284
277285 processed = dag .topological_sort (choose_element )
You can’t perform that action at this time.
0 commit comments