Quellcode durchsuchen

Implement create-edge to tree lowering

jonathanvdc vor 8 Jahren
Ursprung
Commit
64e0b89724
1 geänderte Dateien mit 6 neuen und 0 gelöschten Zeilen
  1. 6 0
      kernel/modelverse_jit/cfg_to_tree.py

+ 6 - 0
kernel/modelverse_jit/cfg_to_tree.py

@@ -811,6 +811,11 @@ class LoweringState(object):
         else:
             return tree_ir.CreateNodeInstruction()
 
+    def lower_create_edge(self, value):
+        """Lowers a 'create-edge' value."""
+        source, target = self.use_definition(value.source), self.use_definition(value.target)
+        return tree_ir.CreateEdgeInstruction(source, target)
+
     def lower_binary(self, value):
         """Lowers a 'binary' value."""
         lhs, rhs = self.use_definition(value.lhs), self.use_definition(value.rhs)
@@ -947,6 +952,7 @@ class LoweringState(object):
         cfg_ir.StoreAtPointer : lower_store_pointer,
         cfg_ir.Read : lower_read,
         cfg_ir.CreateNode : lower_create_node,
+        cfg_ir.CreateEdge : lower_create_edge,
         cfg_ir.Binary : lower_binary,
         cfg_ir.DirectFunctionCall : lower_direct_call,
         cfg_ir.IndirectFunctionCall : lower_indirect_call,