[all-commits] [llvm/llvm-project] 489856: [Assignment Tracking][11/*] Update RemoveRedundant...

Orlando Cazalet-Hyams via All-commits all-commits at lists.llvm.org
Wed Nov 16 04:28:47 PST 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 4898568caa9f8f1e4d10ec415b46966a8dc19bd9
      https://github.com/llvm/llvm-project/commit/4898568caa9f8f1e4d10ec415b46966a8dc19bd9
  Author: OCHyams <orlando.hyams at sony.com>
  Date:   2022-11-16 (Wed, 16 Nov 2022)

  Changed paths:
    M llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
    A llvm/test/DebugInfo/Generic/assignment-tracking/remove-redundant-fwd-scan-linked.ll
    A llvm/test/DebugInfo/Generic/assignment-tracking/remove-redundant.ll

  Log Message:
  -----------
  [Assignment Tracking][11/*] Update RemoveRedundantDbgInstrs

The Assignment Tracking debug-info feature is outlined in this RFC:

https://discourse.llvm.org/t/
rfc-assignment-tracking-a-better-way-of-specifying-variable-locations-in-ir

Update the RemoveRedundantDbgInstrs utility to avoid sometimes losing
information when deleting dbg.assign intrinsics.

removeRedundantDbgInstrsUsingBackwardScan - treat dbg.assign intrinsics that
are not linked to any instruction just like dbg.values. That is, in a block of
contiguous debug intrinsics, delete all other than the last definition for a
fragment. Leave linked dbg.assign intrinsics in place.

removeRedundantDbgInstrsUsingForwardScan - Don't delete linked dbg.assign
intrinsics and don't delete the next intrinsic found even if it would otherwise
be eligible for deletion.

remomveUndefDbgAssignsFromEntryBlock - Delete undef and unlinked dbg.assign
intrinsics encountered in the entry block that come before non-undef
non-unlinked intrinsics for the same variable.

Reviewed By: jmorse

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




More information about the All-commits mailing list