[all-commits] [llvm/llvm-project] 1b6602: [MachineVerifier] Add TiedOpsRewritten flag to fix...

Zhang Kang via All-commits all-commits at lists.llvm.org
Tue Jun 9 00:41:30 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 1b6602275d3f902a91e2eab28f2ac506372d9065
      https://github.com/llvm/llvm-project/commit/1b6602275d3f902a91e2eab28f2ac506372d9065
  Author: Kang Zhang <shkzhang at cn.ibm.com>
  Date:   2020-06-09 (Tue, 09 Jun 2020)

  Changed paths:
    M llvm/include/llvm/CodeGen/MachineFunction.h
    M llvm/lib/CodeGen/MachineFunction.cpp
    M llvm/lib/CodeGen/MachineVerifier.cpp
    M llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
    M llvm/test/CodeGen/PowerPC/two-address-crash.mir

  Log Message:
  -----------
  [MachineVerifier] Add TiedOpsRewritten flag to fix verify two-address error

Summary:
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.

Reviewed By: nemanjai

Differential Revision: https://reviews.llvm.org/D80538




More information about the All-commits mailing list