[all-commits] [llvm/llvm-project] 2a6782: Reland [DebugInfo] Improve dbg preservation in LSR.

elavkje via All-commits all-commits at lists.llvm.org
Mon Dec 14 07:21:43 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 2a6782bb9f1d6843ab6e147765c1cdd7ee5eb90a
      https://github.com/llvm/llvm-project/commit/2a6782bb9f1d6843ab6e147765c1cdd7ee5eb90a
  Author: Markus Lavin <markus.lavin at ericsson.com>
  Date:   2020-12-14 (Mon, 14 Dec 2020)

  Changed paths:
    M llvm/include/llvm/Analysis/ScalarEvolution.h
    M llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
    M llvm/test/DebugInfo/COFF/fpo-shrink-wrap.ll
    A llvm/test/Transforms/LoopStrengthReduce/dbg-preserve-0.ll

  Log Message:
  -----------
  Reland [DebugInfo] Improve dbg preservation in LSR.

Use SCEV to salvage additional @llvm.dbg.value that have turned into
referencing undef after transformation (and traditional
salvageDebugInfo).  Before rewrite (but after introduction of new
induction variables) use SCEV to compute an equivalent set of values for
each @llvm.dbg.value in the loop body (among the loop header PHI-nodes).
After rewrite (and dead PHI elimination) update those @llvm.dbg.value
now referencing undef by picking a remaining value from its equivalence
set.  Allow match with offset by inserting compensation code in the
DIExpression.

Fixes : PR38815

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




More information about the All-commits mailing list