In theory it could allow for sibling call optimization by rewriting those functions into loops. It would not allow full unrestricted TCO--that would require both ABI work and thorny high-level design issues around destructors that may well not be solvable at all.<p>However, in practice LLVM already has full support for sibling call optimization internally, so implementing such an optimization at the MIR level wouldn&#x27;t really buy us anything over what we already have.