[all-commits] [llvm/llvm-project] 7fb118: Refactor recomputeLiveIns to operate on whole CFG ...

Oskar Wirga via All-commits all-commits at lists.llvm.org
Tue Feb 6 17:01:13 PST 2024


  Branch: refs/heads/release/18.x
  Home:   https://github.com/llvm/llvm-project
  Commit: 7fb11860b05092d8aa071d13a1c40ef4ced0d224
      https://github.com/llvm/llvm-project/commit/7fb11860b05092d8aa071d13a1c40ef4ced0d224
  Author: Oskar Wirga <10386631+oskarwirga at users.noreply.github.com>
  Date:   2024-02-06 (Tue, 06 Feb 2024)

  Changed paths:
    M llvm/include/llvm/CodeGen/LivePhysRegs.h
    M llvm/include/llvm/CodeGen/MachineBasicBlock.h
    M llvm/lib/CodeGen/BranchFolding.cpp
    M llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
    M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
    M llvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
    M llvm/lib/Target/PowerPC/PPCExpandAtomicPseudoInsts.cpp
    M llvm/lib/Target/PowerPC/PPCFrameLowering.cpp
    M llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp
    M llvm/lib/Target/X86/X86FrameLowering.cpp
    M llvm/test/CodeGen/SystemZ/branch-folder-hoist-livein.mir
    M llvm/test/CodeGen/Thumb2/LowOverheadLoops/spillingmove.mir

  Log Message:
  -----------
  Refactor recomputeLiveIns to operate on whole CFG (#79498) (#79641)

Currently, the way that recomputeLiveIns works is that it will recompute
the livein registers for that MachineBasicBlock but it matters what
order you call recomputeLiveIn which can result in incorrect register
allocations down the line.

Now we do not recompute the entire CFG but we do ensure that the newly
added MBB do reach convergence. This fixes a register allocation bug
introduced in AArch64 stack probing.

(cherry picked from commit ff4636a4ab00b633c15eb3942c26126ceb2662e6)




More information about the All-commits mailing list