efriedma-quic wrote: TailCallElim turns recursion into a loop. Also, a "loop" written with goto isn't recognized by clang as a loop in the context of CGLoopInfo. I can't think of anything else off the top of my head, though. https://github.com/llvm/llvm-project/pull/223147