瀏覽代碼

Implement create-edge to tree lowering

jonathanvdc 8 年之前
父節點
當前提交
64e0b89724
共有 1 個文件被更改,包括 6 次插入0 次删除
  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,