With the recent changes to transmute, register allocation regressed. The fundamental reason why is that it doesn't understand that due the following expression
(&X transmute &T)~
the lifetime of the addressof X is very short, which means that it could share the stack slot of non-overlapping lifetimes