This patch extends D121376 to allow VXRM changes from predecessors to be taken into account before adding a WriteVXRMImm in a basic block and look for chances to hoist a VXRM change out of a loop.
The limitations of this implementation:
- It is based on the assumption that vxrm is call-clobbered, so it no longer saves VXRM for a call.
- It only applies the data flow analysis on functions which have no pseudos using dynamic round mode.