|
@@ -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,
|