github-actions[bot] wrote:

<!--LLVM CODE FORMAT COMMENT: {undef deprecator}-->


:warning: undef deprecator found issues in your code. :warning:

<details>
<summary>
You can test this locally with the following command:
</summary>

``````````bash
git diff -U0 --pickaxe-regex -S 
'([^a-zA-Z0-9#_-]undef([^a-zA-Z0-9_-]|$)|UndefValue::get)' 'HEAD~1' HEAD 
clang/test/CodeGen/debug-info-block-expr-heterogeneous-dwarf.c 
clang/test/CodeGen/debug-info-global-constant-heterogeneous-dwarf.c 
clang/test/CodeGenCXX/heterogeneous-debug-info-structured-binding-bitfield.cpp 
clang/test/CodeGenCXX/heterogeneous-debug-info-structured-binding.cpp 
llvm/test/Assembler/DIExpressionNew.ll 
llvm/test/Assembler/DIExpressionNewDebugRecords.ll 
llvm/test/Bitcode/DILocalVariable-address-space.ll 
llvm/test/Bitcode/bcanalyzer-metadata-diexpression.ll 
llvm/test/CodeGen/AMDGPU/amdgpu-spill-cfi-saved-regs.ll 
llvm/test/CodeGen/AMDGPU/debug-frame.ll 
llvm/test/CodeGen/AMDGPU/debug-type-mutate.ll 
llvm/test/DebugInfo/AMDGPU/dwarfdump-address-spaces.ll 
llvm/test/DebugInfo/AMDGPU/heterogeneous-dwarf-diop-diexpression-address-spaces.ll
 llvm/test/DebugInfo/AMDGPU/heterogeneous-dwarf-diop-diexpression-args.ll 
llvm/test/DebugInfo/AMDGPU/heterogeneous-dwarf-instruction-bundle.ll 
llvm/test/DebugInfo/AMDGPU/heterogeneous-dwarf-pointer-parameters-isel.ll 
llvm/test/DebugInfo/AMDGPU/reg-sequence-salvage.ll 
llvm/test/DebugInfo/heterogeneous-diop-in-diexpression-conversion.ll 
llvm/test/DebugInfo/heterogeneous-diop-in-diexpression.ll 
llvm/test/DebugInfo/verify-diop-based-diexpression.ll 
llvm/test/Transforms/InferAddressSpaces/AMDGPU/diop-diexpression.ll 
llvm/test/Transforms/InstCombine/heterogeneous-poison-dbg-rauw.ll 
llvm/test/Transforms/InstCombine/heterogeneous-poison-lower-dbg-declare.ll 
llvm/test/Transforms/SROA/heterogeneous-poison.ll 
llvm/unittests/rocm-gdb-symbols/AsmParserTest.cpp 
llvm/unittests/rocm-gdb-symbols/AsmWriterTest.cpp 
clang/include/clang/Basic/CodeGenOptions.h clang/lib/CodeGen/CGDebugInfo.cpp 
clang/lib/CodeGen/CGDebugInfo.h clang/lib/Driver/ToolChains/Clang.cpp 
llvm/include/llvm-c/DebugInfo.h llvm/include/llvm/ADT/Hashing.h 
llvm/include/llvm/AsmParser/LLParser.h llvm/include/llvm/AsmParser/LLToken.h 
llvm/include/llvm/BinaryFormat/Dwarf.h llvm/include/llvm/CodeGen/AsmPrinter.h 
llvm/include/llvm/CodeGen/MachineFunction.h 
llvm/include/llvm/CodeGen/TargetFrameLowering.h 
llvm/include/llvm/CodeGen/TargetRegisterInfo.h 
llvm/include/llvm/DebugInfo/DIContext.h llvm/include/llvm/IR/DIBuilder.h 
llvm/include/llvm/IR/DebugInfoMetadata.h llvm/include/llvm/MC/MCAsmInfo.h 
llvm/include/llvm/MC/MCDwarf.h llvm/include/llvm/MC/MCStreamer.h 
llvm/include/llvm/Target/TargetMachine.h 
llvm/include/llvm/Transforms/Utils/Local.h llvm/lib/AsmParser/LLLexer.cpp 
llvm/lib/AsmParser/LLParser.cpp llvm/lib/BinaryFormat/Dwarf.cpp 
llvm/lib/Bitcode/Reader/MetadataLoader.cpp 
llvm/lib/Bitcode/Writer/BitcodeWriter.cpp 
llvm/lib/Bitcode/Writer/ValueEnumerator.cpp 
llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp 
llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp 
llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h 
llvm/lib/CodeGen/AsmPrinter/DebugLocStream.cpp 
llvm/lib/CodeGen/AsmPrinter/DebugLocStream.h 
llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp 
llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp 
llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h 
llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp 
llvm/lib/CodeGen/AsmPrinter/DwarfExpression.h 
llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp 
llvm/lib/CodeGen/AsmPrinter/DwarfUnit.h llvm/lib/CodeGen/CFIInstrInserter.cpp 
llvm/lib/CodeGen/CodeGenPrepare.cpp 
llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp 
llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h 
llvm/lib/CodeGen/LiveDebugValues/LiveDebugValues.cpp 
llvm/lib/CodeGen/MIRParser/MILexer.cpp llvm/lib/CodeGen/MIRParser/MILexer.h 
llvm/lib/CodeGen/MIRParser/MIParser.cpp llvm/lib/CodeGen/MachineFunction.cpp 
llvm/lib/CodeGen/MachineInstr.cpp llvm/lib/CodeGen/MachineOperand.cpp 
llvm/lib/CodeGen/PrologEpilogInserter.cpp 
llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp 
llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp 
llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp 
llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp 
llvm/lib/CodeGen/TargetFrameLoweringImpl.cpp 
llvm/lib/DWARFCFIChecker/DWARFCFIState.cpp 
llvm/lib/DebugInfo/DWARF/DWARFDie.cpp 
llvm/lib/DebugInfo/DWARF/DWARFExpressionPrinter.cpp 
llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp llvm/lib/IR/AsmWriter.cpp 
llvm/lib/IR/DIBuilder.cpp llvm/lib/IR/DIExpressionOptimizer.cpp 
llvm/lib/IR/DebugInfo.cpp llvm/lib/IR/DebugInfoMetadata.cpp 
llvm/lib/IR/LLVMContextImpl.h llvm/lib/IR/TypeFinder.cpp 
llvm/lib/IR/Verifier.cpp llvm/lib/MC/MCAsmStreamer.cpp llvm/lib/MC/MCDwarf.cpp 
llvm/lib/MC/MCParser/AsmParser.cpp llvm/lib/MC/MCParser/MasmParser.cpp 
llvm/lib/MC/MCStreamer.cpp llvm/lib/Target/AMDGPU/AMDGPUFrameLowering.cpp 
llvm/lib/Target/AMDGPU/AMDGPUFrameLowering.h 
llvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp 
llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp 
llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp 
llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.h 
llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCAsmInfo.cpp 
llvm/lib/Target/AMDGPU/SIFrameLowering.cpp 
llvm/lib/Target/AMDGPU/SIFrameLowering.h 
llvm/lib/Target/AMDGPU/SIInsertHardClauses.cpp 
llvm/lib/Target/AMDGPU/SIInstrInfo.cpp llvm/lib/Target/AMDGPU/SIInstrInfo.h 
llvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp 
llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp 
llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h 
llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp 
llvm/lib/Target/AMDGPU/SIRegisterInfo.h 
llvm/lib/Transforms/Coroutines/CoroFrame.cpp 
llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp 
llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp 
llvm/lib/Transforms/Scalar/SROA.cpp llvm/lib/Transforms/Utils/CodeExtractor.cpp 
llvm/lib/Transforms/Utils/Debugify.cpp llvm/lib/Transforms/Utils/Local.cpp 
llvm/test/Assembler/debug-info.ll 
llvm/test/Bindings/llvm-c/debug_info_new_format.ll 
llvm/test/CodeGen/AArch64/GlobalISel/irtranslator-extract-used-by-dbg.ll 
llvm/test/CodeGen/AArch64/dwarf-eh-prepare-dbg.ll 
llvm/test/CodeGen/AMDGPU/GlobalISel/assert-align.ll 
llvm/test/CodeGen/AMDGPU/GlobalISel/call-outgoing-stack-args.ll 
llvm/test/CodeGen/AMDGPU/GlobalISel/dynamic-alloca-uniform.ll 
llvm/test/CodeGen/AMDGPU/GlobalISel/localizer.ll 
llvm/test/CodeGen/AMDGPU/GlobalISel/memory-legalizer-atomic-fence.ll 
llvm/test/CodeGen/AMDGPU/GlobalISel/non-entry-alloca.ll 
llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll 
llvm/test/CodeGen/AMDGPU/a-v-global-atomicrmw.ll 
llvm/test/CodeGen/AMDGPU/abi-attribute-hints-undefined-behavior.ll 
llvm/test/CodeGen/AMDGPU/agpr-copy-no-free-registers.ll 
llvm/test/CodeGen/AMDGPU/amdgcn-call-whole-wave.ll 
llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll 
llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.256bit.ll 
llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.320bit.ll 
llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll 
llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.576bit.ll 
llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.640bit.ll 
llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.704bit.ll 
llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.768bit.ll 
llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.832bit.ll 
llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.896bit.ll 
llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll 
llvm/test/CodeGen/AMDGPU/amdgpu-cs-chain-cc.ll 
llvm/test/CodeGen/AMDGPU/amdgpu-cs-chain-preserve-cc.ll 
llvm/test/CodeGen/AMDGPU/amdgpu-simplify-libcall-pow-codegen.ll 
llvm/test/CodeGen/AMDGPU/attributor-flatscratchinit-undefined-behavior2.ll 
llvm/test/CodeGen/AMDGPU/bf16.ll 
llvm/test/CodeGen/AMDGPU/branch-folding-implicit-def-subreg.ll 
llvm/test/CodeGen/AMDGPU/branch-relax-spill.ll 
llvm/test/CodeGen/AMDGPU/call-args-inreg.ll 
llvm/test/CodeGen/AMDGPU/call-argument-types.ll 
llvm/test/CodeGen/AMDGPU/call-graph-register-usage.ll 
llvm/test/CodeGen/AMDGPU/call-preserved-registers.ll 
llvm/test/CodeGen/AMDGPU/callee-frame-setup.ll 
llvm/test/CodeGen/AMDGPU/callee-special-input-vgprs-packed.ll 
llvm/test/CodeGen/AMDGPU/callee-special-input-vgprs.ll 
llvm/test/CodeGen/AMDGPU/cross-block-use-is-not-abi-copy.ll 
llvm/test/CodeGen/AMDGPU/dbg-info-inline-at.ll 
llvm/test/CodeGen/AMDGPU/debug-value.ll 
llvm/test/CodeGen/AMDGPU/debug-value2.ll 
llvm/test/CodeGen/AMDGPU/dwarf-multi-register-use-crash.ll 
llvm/test/CodeGen/AMDGPU/dynamic-vgpr-reserve-stack-for-cwsr.ll 
llvm/test/CodeGen/AMDGPU/dynamic_stackalloc.ll 
llvm/test/CodeGen/AMDGPU/fix-frame-reg-in-custom-csr-spills.ll 
llvm/test/CodeGen/AMDGPU/frame-setup-without-sgpr-to-vgpr-spills.ll 
llvm/test/CodeGen/AMDGPU/function-args-inreg.ll 
llvm/test/CodeGen/AMDGPU/gfx-call-non-gfx-func.ll 
llvm/test/CodeGen/AMDGPU/gfx-callable-argument-types.ll 
llvm/test/CodeGen/AMDGPU/gfx-callable-preserved-registers.ll 
llvm/test/CodeGen/AMDGPU/gfx-callable-return-types.ll 
llvm/test/CodeGen/AMDGPU/global-alias.ll 
llvm/test/CodeGen/AMDGPU/identical-subrange-spill-infloop.ll 
llvm/test/CodeGen/AMDGPU/indirect-call.ll 
llvm/test/CodeGen/AMDGPU/insert-delay-alu-bug.ll 
llvm/test/CodeGen/AMDGPU/insert-waitcnts-crash.ll 
llvm/test/CodeGen/AMDGPU/llvm.amdgcn.readfirstlane.ll 
llvm/test/CodeGen/AMDGPU/llvm.dbg.value.ll 
llvm/test/CodeGen/AMDGPU/llvm.maximum.f64.ll 
llvm/test/CodeGen/AMDGPU/llvm.minimum.f64.ll 
llvm/test/CodeGen/AMDGPU/local-stack-alloc-block-sp-reference.ll 
llvm/test/CodeGen/AMDGPU/materialize-frame-index-sgpr.gfx10.ll 
llvm/test/CodeGen/AMDGPU/materialize-frame-index-sgpr.ll 
llvm/test/CodeGen/AMDGPU/maximumnum.bf16.ll 
llvm/test/CodeGen/AMDGPU/memintrinsic-unroll.ll 
llvm/test/CodeGen/AMDGPU/minimumnum.bf16.ll 
llvm/test/CodeGen/AMDGPU/mul24-pass-ordering.ll 
llvm/test/CodeGen/AMDGPU/need-fp-from-vgpr-spills.ll 
llvm/test/CodeGen/AMDGPU/nested-calls.ll 
llvm/test/CodeGen/AMDGPU/no-source-locations-in-prologue.ll 
llvm/test/CodeGen/AMDGPU/non-entry-alloca.ll 
llvm/test/CodeGen/AMDGPU/partial-regcopy-and-spill-missed-at-regalloc.ll 
llvm/test/CodeGen/AMDGPU/post-ra-soft-clause-dbg-info.ll 
llvm/test/CodeGen/AMDGPU/preserve-wwm-copy-dst-reg.ll 
llvm/test/CodeGen/AMDGPU/prologue-epilogue-markers.ll 
llvm/test/CodeGen/AMDGPU/ptr-arg-dbg-value.ll 
llvm/test/CodeGen/AMDGPU/s-getpc-b64-remat.ll 
llvm/test/CodeGen/AMDGPU/sgpr-spills-split-regalloc.ll 
llvm/test/CodeGen/AMDGPU/shufflevector.v2i64.v8i64.ll 
llvm/test/CodeGen/AMDGPU/si-optimize-vgpr-live-range-dbg-instr.ll 
llvm/test/CodeGen/AMDGPU/sibling-call.ll 
llvm/test/CodeGen/AMDGPU/spill-vgpr-block.ll 
llvm/test/CodeGen/AMDGPU/spill_more_than_wavesize_csr_sgprs.ll 
llvm/test/CodeGen/AMDGPU/split-arg-dbg-value.ll 
llvm/test/CodeGen/AMDGPU/stack-realign.ll 
llvm/test/CodeGen/AMDGPU/stacksave_stackrestore.ll 
llvm/test/CodeGen/AMDGPU/strictfp_f16_abi_promote.ll 
llvm/test/CodeGen/AMDGPU/swdev504645-global-fold.ll 
llvm/test/CodeGen/AMDGPU/tail-call-inreg-arguments.error.ll 
llvm/test/CodeGen/AMDGPU/transform-block-with-return-to-epilog.ll 
llvm/test/CodeGen/AMDGPU/tuple-allocation-failure.ll 
llvm/test/CodeGen/AMDGPU/unfold-masked-merge-scalar-variablemask.ll 
llvm/test/CodeGen/AMDGPU/unspill-vgpr-after-rewrite-vgpr-mfma.ll 
llvm/test/CodeGen/AMDGPU/unstructured-cfg-def-use-issue.ll 
llvm/test/CodeGen/AMDGPU/vgpr-tuple-allocation.ll 
llvm/test/CodeGen/AMDGPU/wave32.ll 
llvm/test/CodeGen/AMDGPU/whole-wave-functions.ll 
llvm/test/CodeGen/AMDGPU/whole-wave-register-copy.ll 
llvm/test/CodeGen/AMDGPU/whole-wave-register-spill.ll 
llvm/test/CodeGen/AMDGPU/wwm-reserved-spill.ll 
llvm/test/CodeGen/PowerPC/regalloc-fast-debug-spill.ll 
llvm/test/CodeGen/SPIRV/debug-info/debug-type-pointer.ll 
llvm/test/DebugInfo/AMDGPU/cfi.ll llvm/test/DebugInfo/AMDGPU/debug-loc-copy.ll 
llvm/test/DebugInfo/AMDGPU/pointer-address-space.ll 
llvm/test/DebugInfo/COFF/global_rust.ll 
llvm/test/DebugInfo/Generic/address_space_rvalue.ll 
llvm/test/DebugInfo/NVPTX/debug-info.ll 
llvm/test/DebugInfo/X86/dbg-rust-valid-enum-as-scope.ll 
llvm/test/DebugInfo/X86/stack_adjustments_trigger_cfa_frame_base.ll 
llvm/test/Transforms/InstCombine/cast-mul-select.ll 
llvm/test/Transforms/InstCombine/debuginfo-variables.ll 
llvm/test/Verifier/diderivedtype-address-space-atomic-type.ll 
llvm/test/Verifier/diderivedtype-address-space-const-type.ll 
llvm/test/Verifier/diderivedtype-address-space-friend.ll 
llvm/test/Verifier/diderivedtype-address-space-inheritance.ll 
llvm/test/Verifier/diderivedtype-address-space-member.ll 
llvm/test/Verifier/diderivedtype-address-space-ptr-to-member-type.ll 
llvm/test/Verifier/diderivedtype-address-space-restrict-type.ll 
llvm/test/Verifier/diderivedtype-address-space-rvalue-reference-type.ll 
llvm/test/Verifier/diderivedtype-address-space-typedef.ll 
llvm/test/Verifier/diderivedtype-address-space-volatile-type.ll 
llvm/tools/llvm-c-test/debuginfo.c llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp 
llvm/unittests/IR/DebugInfoTest.cpp llvm/unittests/IR/MetadataTest.cpp 
mlir/lib/Target/LLVMIR/DebugTranslation.cpp 
mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp 
mlir/test/Target/LLVMIR/Import/debug-info.ll
``````````

</details>


The following files introduce new uses of undef:
 - llvm/test/Assembler/DIExpressionNew.ll
 - llvm/test/CodeGen/AMDGPU/dwarf-multi-register-use-crash.ll
 - llvm/test/DebugInfo/verify-diop-based-diexpression.ll

[Undef](https://llvm.org/docs/LangRef.html#undefined-values) is now deprecated 
and should only be used in the rare cases where no replacement is possible. For 
example, a load of uninitialized memory yields `undef`. You should use `poison` 
values for placeholders instead.

In tests, avoid using `undef` and having tests that trigger undefined behavior. 
If you need an operand with some unimportant value, you can add a new argument 
to the function and use that instead.

For example, this is considered a bad practice:
```llvm
define void @fn() {
  ...
  br i1 undef, ...
}
```

Please use the following instead:
```llvm
define void @fn(i1 %cond) {
  ...
  br i1 %cond, ...
}
```

Please refer to the [Undefined Behavior 
Manual](https://llvm.org/docs/UndefinedBehavior.html) for more information.



https://github.com/llvm/llvm-project/pull/164641
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to