[all-commits] [llvm/llvm-project] a3936a: [DebugInfo][InstrRef] Use PHI placement utilities ...

Jeremy Morse via All-commits all-commits at lists.llvm.org
Wed Oct 13 04:51:33 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a3936a6c19c7914b86ee7a30ce95439ffb72b9c9
      https://github.com/llvm/llvm-project/commit/a3936a6c19c7914b86ee7a30ce95439ffb72b9c9
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2021-10-13 (Wed, 13 Oct 2021)

  Changed paths:
    M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
    M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h
    M llvm/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp
    M llvm/lib/CodeGen/LiveDebugValues/LiveDebugValues.h
    M llvm/lib/CodeGen/LiveDebugValues/VarLocBasedImpl.cpp
    M llvm/unittests/CodeGen/InstrRefLDVTest.cpp

  Log Message:
  -----------
  [DebugInfo][InstrRef] Use PHI placement utilities for machine locations

InstrRefBasedLDV used to try and determine which values are in which
registers using a lattice approach; however this is hard to understand, and
broken in various ways. This patch replaces that approach with a standard
SSA approach using existing LLVM utilities. PHIs are placed at dominance
frontiers; value propagation then eliminates un-necessary PHIs.

This patch also adds a bunch of unit tests that should cover many of the
weirder forms of control flow.

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




More information about the All-commits mailing list