[PATCH] D142027: [Assignment Tracking][NFC] Replace LLVM command line option with a new module flag

Orlando Cazalet-Hyams via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 18 08:21:42 PST 2023


Orlando created this revision.
Orlando added reviewers: jmorse, StephenTozer.
Orlando added a project: debug-info.
Herald added subscribers: asbirlea, zzheng, hiraditya.
Herald added a project: All.
Orlando requested review of this revision.
Herald added subscribers: llvm-commits, pcwang-thead, MaskRay.
Herald added a project: LLVM.

Remove LLVM flag `-experimental-assignment-tracking`. Assignment tracking is still enabled from Clang with the command line `-Xclang -fexperimental-assignment-tracking` which tells Clang to ask LLVM to run the pass `declare-to-assign`. That pass converts conventional debug intrinsics to assignment tracking metadata. With this patch it now also sets a module flag `debug-info-assignment-tracking` with the value `i1 true` (using the flag conflict rule `Max` since enabling assignment tracking on IR that contains only conventional debug intrinsics should cause no issues).

Update the docs and tests too.


https://reviews.llvm.org/D142027

Files:
  clang/lib/Driver/ToolChains/Clang.cpp
  clang/test/Driver/assignment-tracking-opts.c
  llvm/docs/AssignmentTracking.md
  llvm/include/llvm/IR/DebugInfo.h
  llvm/lib/CodeGen/AssignmentTrackingAnalysis.cpp
  llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
  llvm/lib/IR/DebugInfo.cpp
  llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
  llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
  llvm/lib/Transforms/Utils/InlineFunction.cpp
  llvm/test/DebugInfo/Generic/assignment-tracking/adce/no-delete.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/codegenprepare/sunk-addr.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/dse/dse-after-memcpyopt-merge.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/dse/shorten.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/inline/id.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/inline/inline-stores.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/inline/use-before-def.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/instcombine/alloca-bitcast.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/instcombine/memset.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/instcombine/remove-redundant-dbg.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/instcombine/sink-store.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/instcombine/sink.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/instcombine/storemerge.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/licm/merge.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/licm/multi-exit.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/loop-deletion/dead-loop.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/mem2reg/phi.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/mem2reg/single-block-alloca.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/mem2reg/single-store-alloca.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/memcpyopt/merge-stores.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/mldst-motion/diamond.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/parse-and-verify/distinct.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/parse-and-verify/instruction-type.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/parse-and-verify/operands.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/parse-and-verify/roundtrip.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/parse-and-verify/verify.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/remove-redundant-fwd-scan-linked.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/remove-redundant.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/salvage-value.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/simplifycfg/empty-block.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/simplifycfg/speculated-store.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/slp-vectorizer/merge-scalars.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/sroa/after-inlining.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/sroa/alloca-single-slice.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/sroa/complex.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/sroa/frag-2.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/sroa/frag.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/sroa/id.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/sroa/memcpy.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/sroa/memmove-to-from-same-alloca.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/sroa/rewrite.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/sroa/store.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/sroa/unspecified-var-size.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/sroa/user-memcpy.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/sroa/vec-1.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/sroa/vec-2.ll
  llvm/test/DebugInfo/Generic/assignment-tracking/track-assignments.ll
  llvm/test/DebugInfo/assignment-tracking/X86/DSE.ll
  llvm/test/DebugInfo/assignment-tracking/X86/dbg-phi-produces-undef.ll
  llvm/test/DebugInfo/assignment-tracking/X86/diamond-1.ll
  llvm/test/DebugInfo/assignment-tracking/X86/diamond-2.ll
  llvm/test/DebugInfo/assignment-tracking/X86/diamond-3.ll
  llvm/test/DebugInfo/assignment-tracking/X86/loop-hoist.ll
  llvm/test/DebugInfo/assignment-tracking/X86/loop-sink.ll
  llvm/test/DebugInfo/assignment-tracking/X86/loop-unroll.ll
  llvm/test/DebugInfo/assignment-tracking/X86/lower-offset-expression.ll
  llvm/test/DebugInfo/assignment-tracking/X86/lower-to-value.ll
  llvm/test/DebugInfo/assignment-tracking/X86/mem-loc-frag-fill-cfg.ll
  llvm/test/DebugInfo/assignment-tracking/X86/mem-loc-frag-fill.ll
  llvm/test/DebugInfo/assignment-tracking/X86/nested-loop-frags.ll
  llvm/test/DebugInfo/assignment-tracking/X86/nested-loop-sroa.ll
  llvm/test/DebugInfo/assignment-tracking/X86/nested-loop.ll
  llvm/test/DebugInfo/assignment-tracking/X86/no-redundant-def-after-alloca.ll
  llvm/test/DebugInfo/assignment-tracking/X86/order-of-defs.ll
  llvm/test/DebugInfo/assignment-tracking/X86/remove-redundant-defs-to-prevent-reordering.ll
  llvm/test/DebugInfo/assignment-tracking/X86/remove-undef-fragment.ll
  llvm/test/DebugInfo/assignment-tracking/X86/sdag-dangling-dbgassign.ll
  llvm/test/DebugInfo/assignment-tracking/X86/sdag-ir-salvage-assign.ll
  llvm/test/DebugInfo/assignment-tracking/X86/sdag-transfer-dbgassign.ll
  llvm/test/DebugInfo/assignment-tracking/X86/single-memory-location-2.ll
  llvm/test/DebugInfo/assignment-tracking/X86/single-memory-location.ll
  llvm/test/DebugInfo/assignment-tracking/X86/split-alloca.ll
  llvm/test/DebugInfo/assignment-tracking/X86/untagged-store-frag.ll
  llvm/test/DebugInfo/assignment-tracking/X86/use-known-value-at-early-mem-def-2.ll
  llvm/test/DebugInfo/assignment-tracking/X86/use-known-value-at-early-mem-def.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D142027.490171.patch
Type: text/x-patch
Size: 98734 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230118/436cd66c/attachment-0001.bin>


More information about the llvm-commits mailing list