File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -244,6 +244,10 @@ def _toposort(exprs):
244244 """
245245 Ensure the expression list is topologically sorted.
246246 """
247+ if not any (isinstance (e .lhs , CTemp ) for e in exprs ):
248+ # Not CSE temps, no need to topologically sort
249+ return exprs
250+
247251 dag = DAG (exprs )
248252
249253 for e0 in exprs :
@@ -256,8 +260,12 @@ def _toposort(exprs):
256260
257261 def choose_element (queue , scheduled ):
258262 # Try to honor temporary names as much as possible
259- first = sorted (queue , key = lambda i : str (i .lhs )).pop (0 )
260- queue .remove (first )
263+ tmps = [i for i in queue if isinstance (i .lhs , CTemp )]
264+ if tmps :
265+ first = sorted (tmps , key = lambda i : str (i .lhs )).pop (0 )
266+ queue .remove (first )
267+ else :
268+ first = queue .pop ()
261269 return first
262270
263271 processed = dag .topological_sort (choose_element )
You can’t perform that action at this time.
0 commit comments