Llvm ir can be mutable. Just make a conversion to ssa in the hood. This is very convinent to the user. Of cause we can use memory operation to mimic mutable register. It’s easy too. But it’s not very obvious. And not all languages want to use memory directly. Llvm is the right place to implement that to avoid making wheels. As far as I know, some body already implement mem2reg. I think the work can be done father.
The change will not affect the core function of llvm. But it’s good for the user. Right now I don’t see bad side of it.