Browse Source

Support lowering of defs that point to defs

jonathanvdc 8 years ago
parent
commit
1ff4ee239c
1 changed files with 7 additions and 1 deletions
  1. 7 1
      kernel/modelverse_jit/cfg_to_tree.py

+ 7 - 1
kernel/modelverse_jit/cfg_to_tree.py

@@ -337,7 +337,10 @@ class LoweringState(object):
         if definition in self.definition_loads:
             return self.definition_loads[definition]
 
-        result = self.__create_value_load(definition.value)
+        if isinstance(definition.value, cfg_ir.Definition):
+            result = self.load_definition(definition.value)
+        else:
+            result = self.__create_value_load(definition.value)
         self.definition_loads[definition] = result
         return result
 
@@ -351,6 +354,9 @@ class LoweringState(object):
 
     def lower_definition(self, definition):
         """Lowers the given definition to a tree."""
+        if isinstance(definition.value, cfg_ir.Definition):
+            return tree_ir.EmptyInstruction()
+
         instruction = definition.value
         tree_instruction = self.lower_value(instruction)
         def_load = self.load_definition(definition)