[all-commits] [llvm/llvm-project] 495554: [LiveDebugValues][InstrRef][1/2] Recover more clob...

Jeremy Morse via All-commits all-commits at lists.llvm.org
Wed Jun 30 08:57:12 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 49555441628a0ec620581bba371e6bb20c2b3f5f
      https://github.com/llvm/llvm-project/commit/49555441628a0ec620581bba371e6bb20c2b3f5f
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2021-06-30 (Wed, 30 Jun 2021)

  Changed paths:
    M llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp
    M llvm/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp
    M llvm/test/DebugInfo/MIR/InstrRef/livedebugvalues_instrref_tolocs.mir
    A llvm/test/DebugInfo/MIR/InstrRef/livedebugvalues_recover_clobbers.mir
    M llvm/test/DebugInfo/MIR/X86/livedebugvalues_load_in_loop.mir

  Log Message:
  -----------
  [LiveDebugValues][InstrRef][1/2] Recover more clobbered variable locations

In various circumstances, when we clobber a register there may be
alternative locations that the value is live in. The classic example would
be a value loaded from the stack, and then clobbered: the value is still
available on the stack. InstrRefBasedLDV was coping with this at block
starts where it's forced to pick a location, however it wasn't searching
for alternative locations when values were clobbered.

This patch notifies the "Transfer Tracker" object when clobbers occur, and
it's able to find alternatives and issue DBG_VALUEs for that location. See:
the added test.

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




More information about the All-commits mailing list