fhdl/tools/group_by_target: remove resort_statements
authorSebastien Bourdeauducq <sebastien@milkymist.org>
Wed, 17 Jul 2013 08:38:39 +0000 (10:38 +0200)
committerSebastien Bourdeauducq <sebastien@milkymist.org>
Wed, 17 Jul 2013 08:38:39 +0000 (10:38 +0200)
migen/fhdl/tools.py

index f2f572226eb310884afc3dca15ad4388179c84a1..d87bfa17a881f93b523b94d6cf884174be60d7f8 100644 (file)
@@ -48,29 +48,24 @@ def list_targets(node):
        lister.visit(node)
        return lister.output_list
 
-def resort_statements(ol):
-       return [statement for i, statement in
-                       sorted(ol, key=lambda x: x[0])]
-
 def group_by_targets(sl):
        groups = []
-       for statement_order, statement in enumerate(flat_iteration(sl)):
+       for statement in flat_iteration(sl):
                targets = list_targets(statement)
 
                chk_groups = [(targets.isdisjoint(g[0]), g) for g in groups]
                merge_groups = [g for dj, g in chk_groups if not dj]
                groups = [g for dj, g in chk_groups if dj]
 
-               new_group = (set(targets), [(statement_order, statement)])
-
+               new_group = (set(targets), [])
                for g in merge_groups:
                        new_group[0].update(g[0])
                        new_group[1].extend(g[1])
+               new_group[1].append(statement)
 
                groups.append(new_group)
 
-       return [(target, resort_statements(stmts))
-               for target, stmts in groups]
+       return groups
 
 def list_special_ios(f, ins, outs, inouts):
        r = set()