(2) We're going to need to get rid of these assignments anyway, though. Consider the last test, which still fails—I assume because we're left with object load/stores in the IR and we can't translate those to sm4.
The endless loop seems to happen when there are uninitialized objects such as in the first test (or in the second test for now, because we are lacking more support for object components) because copy-prop indeed can't get rid of these assignments.
Eh, right... I guess the way we do copy-prop we're probably not going to end up running into this case unless the object was never initialized? I don't feel comfortable that's always going to be true, though, and I don't like depending on that in the future.