|
@@ -965,7 +965,11 @@ class LoweringState(object):
|
|
|
def lower_flow_graph(entry_point, jit):
|
|
|
"""Lowers the control-flow graph defined by the given entry point to tree IR."""
|
|
|
cfg_lowerer = LoweringState(jit, find_inlinable_definitions(entry_point))
|
|
|
- lowered_body = reloop_function_body(entry_point).lower(cfg_lowerer)
|
|
|
- lowered_body = tree_ir.CompoundInstruction(
|
|
|
- cfg_lowerer.lower_jump(cfg_ir.create_jump(entry_point)), lowered_body)
|
|
|
+ ep_branches = entry_point.flow.branches()
|
|
|
+ if len(ep_branches) == 0:
|
|
|
+ lowered_body = cfg_lowerer.lower_block(entry_point)
|
|
|
+ else:
|
|
|
+ lowered_body = reloop_function_body(entry_point).lower(cfg_lowerer)
|
|
|
+ lowered_body = tree_ir.CompoundInstruction(
|
|
|
+ cfg_lowerer.lower_jump(cfg_ir.create_jump(entry_point)), lowered_body)
|
|
|
return tree_ir.map_and_simplify(lambda x: x, lowered_body)
|