[all-commits] [llvm/llvm-project] 0e96d9: [DebugInfo][InstrRef] Accept register-reads after ...

Jeremy Morse via All-commits all-commits at lists.llvm.org
Fri Mar 4 09:01:36 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 0e96d95d13d9f7b2a96bcaa569ce0a0181a6c7f3
      https://github.com/llvm/llvm-project/commit/0e96d95d13d9f7b2a96bcaa569ce0a0181a6c7f3
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2022-03-04 (Fri, 04 Mar 2022)

  Changed paths:
    M llvm/lib/CodeGen/MachineFunction.cpp
    A llvm/test/DebugInfo/X86/instr-ref-ir-reg-read.ll

  Log Message:
  -----------
  [DebugInfo][InstrRef] Accept register-reads after isel in any block

When lowering LLVM-IR to instruction referencing stuff, if a value is
defined by a COPY, we try and follow the register definitions back to where
the value was defined, and build an instruction reference to that
instruction. In a few scenarios (such as arguments), this isn't possible.
I added some assertions to catch cases that weren't explicitly whitelisted.

Over the course of a few months, several more scenarios have cropped up,
the lastest is the llvm.read_register intrinsic, which lets LLVM-IR read an
arbitary register at any point. In the face of this, there's little point
in validating whether debug-info reads a register in an expected scenario.
Thus: this patch just deletes those assertions, and adds a regression test
to check that something is done with the llvm.read_register intrinsic.

Fixes #54190

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




More information about the All-commits mailing list