Versus some of the earlier attempts here this is a little more difficult since most of these headers are still getting here transitively - but some grepping in the file convinced me that none of the things I think are here are here.
Sounds good to me.
How'd you test that the MachineMemOperand.h changes were OK? Looks like it doesn't have an implementation file, so I'm not sure it's included first in any file - which means it's harder to tell if removing headers from it is valid/keeps it standalone (since its inclusion context might be allowing it to get away without including necessary headers)
Basically grepping for Metadata and Inst things in the file itself. It's pretty short and I just read it. Always a possibility I missed something that's being gotten via transitive include though.