According to MSDN (see the PR), functions which don't touch any callee-saved registers (including %rsp) don't need any unwind info.
This patch takes a stab at not emitting unwind info for such functions, to save binary space. This is an area I don't now much about, so all input is welcome.
I originally wanted to put 'HasWinCFI' on X86MachineFunctionInfo, but then we wouldn't be able to check it from WinException, so it ended up on MachineFunction. I'm not sure what a better place would be. MachineFrameInfo maybe?
I'd sleep a little easier at night if HasWinCFI was an optional bool. This way we can make sure that nobody is trying to access it before we calculate the state the function is in.