[all-commits] [llvm/llvm-project] cd02e4: [DebugInfo] Set all dbg.value intrinsics to be tai...

Jeremy Morse via All-commits all-commits at lists.llvm.org
Thu Nov 30 05:49:54 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: cd02e4b8128e6379f1b317132f605787074c8850
      https://github.com/llvm/llvm-project/commit/cd02e4b8128e6379f1b317132f605787074c8850
  Author: Jeremy Morse <jeremy.morse at sony.com>
  Date:   2023-11-30 (Thu, 30 Nov 2023)

  Changed paths:
    M llvm/lib/IR/DIBuilder.cpp

  Log Message:
  -----------
  [DebugInfo] Set all dbg.value intrinsics to be tail-calls (#73661)

This change has no meaningful effect on the compiler, although it has a
functional effect of dbg.value intrinsics being printed differently. The
tail-call flag is meaningless for debug-intrinsics and doesn't serve a
purpose, it's just extra baggage that dbg.values are built on top of.
Some facilities create debug-intrinsics with the flag, others don't.
However, the RemoveDIs project to represent debug-info without
intrinsics doesn't have a corresponding flag, which can cause spurious
test differences.

Specifically: we can convert a dbg.value to a DPValue, run an
optimisation pass, then convert the DPValue back to dbg.value form.
Right now, we always set the "tail" flag when converting it back. This
causes the auto-update-tests script to fail sometimes because in one
mode (dbg.value) intrinsics might not have a tail flag, but in the other
they do have a tail flag. Consistently picking one or the other in the
conversion routine doesn't help, because the rest of LLVM is
inconsistent about it anyway.

Thus: whenever we make a dbg.value intrinsic, create it as a tail call,
so that we get consistent output behaviours no matter which debug-info
mode we're in, DPValue or dbg.value. No tests fail as a result of this
patch because the extra 'tail' generated in numerous tests is
automatically ignored by FileCheck as being leading-rubbish before the
CHECK match.




More information about the All-commits mailing list