Optimization: Special case for simplying recursive let bindings codegen

This commit is contained in:
Emi Simpson 2024-03-16 22:23:06 -04:00
parent 6f89dfa1c5
commit b0ccfc6309
Signed by: Emi
GPG Key ID: A12F2C2FFDC3D847
1 changed files with 4 additions and 1 deletions

5
ir.py
View File

@ -183,7 +183,10 @@ class LetBinding:
def codegen(self) -> str:
rhs_cg = self.rhs.codegen_named(self.lhs) if isinstance(self.rhs, MonoFunc) else self.rhs.codegen()
return f'({self.lhs}=>{self.body.codegen()})({rhs_cg})'
if self.body == Variable(self.lhs):
return rhs_cg
else:
return f'({self.lhs}=>{self.body.codegen()})({rhs_cg})'
@dataclass
class Application: