If you compile your immutable program with LLVM, literally one of the cure steps is transforming it into functional form that does not allow mutations.
This is called Single Static Assignment form and its denial of mutation is crucial to optimization, from common expression removal, to efficient register allocation, and all sorts of control flow analysis.
> If you compile your immutable program with LLVM, literally one of the cure steps is transforming it into functional form that does not allow mutations.
You probably wanted to write something like 'If you compile your _mutating_ program with LLVM, [...]'?
This is called Single Static Assignment form and its denial of mutation is crucial to optimization, from common expression removal, to efficient register allocation, and all sorts of control flow analysis.