[PATCH] D114631: [DebugInfo][InstrRef] Turn instruction referencing on by default for x86
Jeremy Morse via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Nov 26 04:21:33 PST 2021
jmorse created this revision.
jmorse added reviewers: StephenTozer, Orlando, TWeaver, djtodoro.
Herald added subscribers: dang, pengfei, hiraditya.
jmorse requested review of this revision.
Herald added projects: clang, LLVM.
Herald added subscribers: llvm-commits, cfe-commits.
This patch makes instruction referencing on-by-default for x86, as discussed in https://lists.llvm.org/pipermail/llvm-dev/2021-November/153653.html . I'm sure there'll be an amount of unexpected breakage, so I'll land in two parts, with a minimal sized patch switching the default so that reverting is easy.
It seems there are a number of complicated interactions between the cc1 arguments and the codegen flags -- I don't really want to untangle them, so I've just removed the cc1 argument for instruction referencing. It'll still be accessible with `-mllvm -experimental-debug-variable-locations=true`
This is probably the point to discuss tests that I'm not intending on updating for instruction referencing and still have -experimental-debug-variable-locations=false in the arguments. They are:
MIR/X86/dvl-livedebugvalues-clobber.mir
MIR/X86/dvl-livedebugvalues-join.mir
MIR/X86/dvl-livedebugvalues-movements.mir
MIR/X86/dvl-livedebugvalues-spillrestore.mir
X86/dbg-val-list-dangling.ll
^ they involve variadic variable locations, which is currently "future work" for December,
MIR/X86/kill-after-spill.mir
MIR/X86/live-debug-values-restore-collide.mir
MIR/X86/mlicm-hoist-post-regalloc.mir
X86/live-debug-variables.ll
X86/live-debug-vars-discard-invalid.mir
X86/live-debug-vars-intervals.mir
MIR/X86/live-debug-vars-unused-arg-debugonly.mir
MIR/X86/live-debug-vars-unused-arg.mir
MIR/X86/livedebugvars-crossbb-interval.mir
MIR/X86/backup-entry-values-usage.mir
^ these all test very DBG_VALUE specific parts of code, usuallly LiveDebugVariables which is a no-op when using instruction referencing. One of them tests what VarLocBasedLDV does does with spills when they're followed by kill flags, which is another thing InstrRefBasedLDV doesn't care about.
Generic/linear-dbg-value.ll
^ this seems to just check that DBG_VALUE instructions are generated, I don't think it's really testing any interesting behaviours.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D114631
Files:
clang/include/clang/Driver/Options.td
llvm/include/llvm/CodeGen/CommandFlags.h
llvm/lib/CodeGen/CommandFlags.cpp
llvm/lib/Target/X86/X86TargetMachine.cpp
llvm/test/DebugInfo/X86/instr-ref-flag.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D114631.389990.patch
Type: text/x-patch
Size: 6099 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20211126/58e515ba/attachment-0001.bin>
More information about the cfe-commits
mailing list