[all-commits] [llvm/llvm-project] 03adc5: Reset NoPHI MachineFunction property in X86CmovCon...

Jeremy Morse via All-commits all-commits at lists.llvm.org
Wed Jun 28 02:40:18 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 03adc5f16fddf6410810801af1a67214d31ce8ed
      https://github.com/llvm/llvm-project/commit/03adc5f16fddf6410810801af1a67214d31ce8ed
  Author: OCHyams <orlando.hyams at sony.com>
  Date:   2023-06-28 (Wed, 28 Jun 2023)

  Changed paths:
    M llvm/lib/Target/X86/X86CmovConversion.cpp

  Log Message:
  -----------
  Reset NoPHI MachineFunction property in X86CmovConversion

In order to placate the machine-verifier, X86CmovConversion needs to reset the
NoPHI property when it inserts a PHI.

Fixes buildbot failure: https://lab.llvm.org/buildbot/#/builders/16/builds/50453

Reviewed By: StephenTozer

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


  Commit: 63565981a2726cc0405e143e7a91d4bcd021f731
      https://github.com/llvm/llvm-project/commit/63565981a2726cc0405e143e7a91d4bcd021f731
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2023-06-28 (Wed, 28 Jun 2023)

  Changed paths:
    M llvm/lib/Target/X86/X86CmovConversion.cpp
    A llvm/test/DebugInfo/MIR/InstrRef/x86-cmov-converter.mir

  Log Message:
  -----------
  Reapply "[DebugInfo][InstrRef] Instrument x86 CMOV conversion to preserve variable values"

X86's CMOV conversion transforms CMOV instructions into control flow between
blocks, meaning the value is computed by a PHI rather than a "real" machine
instruction. In instruction-referencing mode, we need to transfer the
instruction label between the old CMOV and the new PHI instruction to mark
where the variable value is computed.

There's an extra complication in that memory operands can be unfolded from the
CMOV and sunk into the new blocks -- the test checks both scenarios where the
instruction number has to hop between instructions.

This omission exposed by Dexter testing.

Reviewed By: Orlando

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


Compare: https://github.com/llvm/llvm-project/compare/6f22de67c585...63565981a272


More information about the All-commits mailing list