[all-commits] [llvm/llvm-project] fca3e8: [Assignment Tracking] Fix fragment error for some ...

Orlando Cazalet-Hyams via All-commits all-commits at lists.llvm.org
Wed Apr 19 01:33:02 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: fca3e8e024f0015604d21e6f76f3e199345679c5
      https://github.com/llvm/llvm-project/commit/fca3e8e024f0015604d21e6f76f3e199345679c5
  Author: OCHyams <orlando.hyams at sony.com>
  Date:   2023-04-19 (Wed, 19 Apr 2023)

  Changed paths:
    M llvm/include/llvm/IR/DebugInfo.h
    M llvm/include/llvm/IR/DebugInfoMetadata.h
    M llvm/include/llvm/IR/IntrinsicInst.h
    M llvm/lib/IR/DebugInfo.cpp
    M llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
    M llvm/lib/Transforms/Scalar/SROA.cpp
    M llvm/test/DebugInfo/Generic/assignment-tracking/dse/dse-after-memcpyopt-merge.ll
    A llvm/test/DebugInfo/Generic/assignment-tracking/dse/shorten-offset.ll

  Log Message:
  -----------
  [Assignment Tracking] Fix fragment error for some DSE-shortened stores

`shortenAssignment` inserts dbg.assigns with fragments describing the dead part
of a shortened store after each dbg.assign linked to the store.

Without this patch it doesn't take into account that the dead part of a
shortened store may be outside the bounds of a variable of a linked
dbg.assign. It also doesn't correctly account for a non-zero offset in the
address modifying `DIExpression` of the dbg.assign (which is possible for
fragments now even though whole variables currently cannot have a non-zero
offset in their alloca).

Fix this by moving the dead slice into variable-space and performing an
intersect of that adjusted slice with the existing fragment.

This fixes a verifier error reported when building fuchsia with assignment
tracking enabled:
https://ci.chromium.org/ui/p/fuchsia/builders/ci/
        clang_toolchain.ci.core.x64-release/b8784000953022145169/overview

Reviewed By: jmorse

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


  Commit: 107b307bd61e51aa66ea41f1a2c92c1459b39c7e
      https://github.com/llvm/llvm-project/commit/107b307bd61e51aa66ea41f1a2c92c1459b39c7e
  Author: OCHyams <orlando.hyams at sony.com>
  Date:   2023-04-19 (Wed, 19 Apr 2023)

  Changed paths:
    M clang/include/clang/Driver/Options.td
    M clang/test/CodeGen/assignment-tracking/flag.cpp

  Log Message:
  -----------
  Reapply D146987 "[Assignment Tracking] Enable by default"

This reverts commit efc8b52cbd942f4bd5ffe8f64da5fb8a3b7adc32
which reverts D146987.

See https://reviews.llvm.org/D146987 for issues.


Compare: https://github.com/llvm/llvm-project/compare/bf7f6b44362c...107b307bd61e


More information about the All-commits mailing list