Currently, MachineVerifier will attempt to verify that tied operands satisfy register constraints
as soon as the function is no longer in SSA form. However, PHIElimination will take the
function out of SSA form while TwoAddressInstructionPass will actually rewrite tied operands
to match the constraints. PHIElimination runs first in the pipeline.
Therefore, whenever the MachineVerifier is run after PHIElimination, it will encounter
verification errors on any tied operands.
This patch adds a function property called TiedOpsRewritten that will be set by
TwoAddressInstructionPass and will control when the verifier checks tied operands.
This patch can fix 4752 cases error for two-address constraint verification.