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 
libclc/opencl/include/clc/opencl/clc.h 
libclc/opencl/include/clc/opencl/as_type.h 
libclc/opencl/include/clc/opencl/async/async_work_group_copy.h 
libclc/opencl/include/clc/opencl/async/async_work_group_copy.inc 
libclc/opencl/include/clc/opencl/async/async_work_group_strided_copy.h 
libclc/opencl/include/clc/opencl/async/async_work_group_strided_copy.inc 
libclc/opencl/include/clc/opencl/async/prefetch.h 
libclc/opencl/include/clc/opencl/async/prefetch.inc 
libclc/opencl/include/clc/opencl/async/wait_group_events.h 
libclc/opencl/include/clc/opencl/atomic/atom_add.h 
libclc/opencl/include/clc/opencl/atomic/atom_and.h 
libclc/opencl/include/clc/opencl/atomic/atom_cmpxchg.h 
libclc/opencl/include/clc/opencl/atomic/atom_dec.h 
libclc/opencl/include/clc/opencl/atomic/atom_decl_int32.inc 
libclc/opencl/include/clc/opencl/atomic/atom_decl_int64.inc 
libclc/opencl/include/clc/opencl/atomic/atom_inc.h 
libclc/opencl/include/clc/opencl/atomic/atom_max.h 
libclc/opencl/include/clc/opencl/atomic/atom_min.h 
libclc/opencl/include/clc/opencl/atomic/atom_or.h 
libclc/opencl/include/clc/opencl/atomic/atom_sub.h 
libclc/opencl/include/clc/opencl/atomic/atom_xchg.h 
libclc/opencl/include/clc/opencl/atomic/atom_xor.h 
libclc/opencl/include/clc/opencl/atomic/atomic_add.h 
libclc/opencl/include/clc/opencl/atomic/atomic_and.h 
libclc/opencl/include/clc/opencl/atomic/atomic_cmpxchg.h 
libclc/opencl/include/clc/opencl/atomic/atomic_dec.h 
libclc/opencl/include/clc/opencl/atomic/atomic_decl.inc 
libclc/opencl/include/clc/opencl/atomic/atomic_inc.h 
libclc/opencl/include/clc/opencl/atomic/atomic_max.h 
libclc/opencl/include/clc/opencl/atomic/atomic_min.h 
libclc/opencl/include/clc/opencl/atomic/atomic_or.h 
libclc/opencl/include/clc/opencl/atomic/atomic_sub.h 
libclc/opencl/include/clc/opencl/atomic/atomic_xchg.h 
libclc/opencl/include/clc/opencl/atomic/atomic_xor.h 
libclc/opencl/include/clc/opencl/common/degrees.h 
libclc/opencl/include/clc/opencl/common/mix.h 
libclc/opencl/include/clc/opencl/common/mix.inc 
libclc/opencl/include/clc/opencl/common/radians.h 
libclc/opencl/include/clc/opencl/common/sign.h 
libclc/opencl/include/clc/opencl/common/smoothstep.h 
libclc/opencl/include/clc/opencl/common/smoothstep.inc 
libclc/opencl/include/clc/opencl/common/step.h 
libclc/opencl/include/clc/opencl/common/step.inc 
libclc/opencl/include/clc/opencl/convert.h 
libclc/opencl/include/clc/opencl/explicit_fence/explicit_memory_fence.h 
libclc/opencl/include/clc/opencl/geometric/cross.h 
libclc/opencl/include/clc/opencl/geometric/distance.h 
libclc/opencl/include/clc/opencl/geometric/dot.h 
libclc/opencl/include/clc/opencl/geometric/fast_distance.h 
libclc/opencl/include/clc/opencl/geometric/fast_length.h 
libclc/opencl/include/clc/opencl/geometric/fast_normalize.h 
libclc/opencl/include/clc/opencl/geometric/length.h 
libclc/opencl/include/clc/opencl/geometric/normalize.h 
libclc/opencl/include/clc/opencl/image/image.h 
libclc/opencl/include/clc/opencl/image/image_defines.h 
libclc/opencl/include/clc/opencl/integer/abs.h 
libclc/opencl/include/clc/opencl/integer/abs.inc 
libclc/opencl/include/clc/opencl/integer/abs_diff.h 
libclc/opencl/include/clc/opencl/integer/abs_diff.inc 
libclc/opencl/include/clc/opencl/integer/add_sat.h 
libclc/opencl/include/clc/opencl/integer/clz.h 
libclc/opencl/include/clc/opencl/integer/ctz.h 
libclc/opencl/include/clc/opencl/integer/hadd.h 
libclc/opencl/include/clc/opencl/integer/mad24.h 
libclc/opencl/include/clc/opencl/integer/mad_hi.h 
libclc/opencl/include/clc/opencl/integer/mad_sat.h 
libclc/opencl/include/clc/opencl/integer/mul24.h 
libclc/opencl/include/clc/opencl/integer/mul_hi.h 
libclc/opencl/include/clc/opencl/integer/popcount.h 
libclc/opencl/include/clc/opencl/integer/rhadd.h 
libclc/opencl/include/clc/opencl/integer/rotate.h 
libclc/opencl/include/clc/opencl/integer/sub_sat.h 
libclc/opencl/include/clc/opencl/integer/upsample.h 
libclc/opencl/include/clc/opencl/math/acos.h 
libclc/opencl/include/clc/opencl/math/acosh.h 
libclc/opencl/include/clc/opencl/math/acospi.h 
libclc/opencl/include/clc/opencl/math/asin.h 
libclc/opencl/include/clc/opencl/math/asinh.h 
libclc/opencl/include/clc/opencl/math/asinpi.h 
libclc/opencl/include/clc/opencl/math/atan.h 
libclc/opencl/include/clc/opencl/math/atan2.h 
libclc/opencl/include/clc/opencl/math/atan2pi.h 
libclc/opencl/include/clc/opencl/math/atanh.h 
libclc/opencl/include/clc/opencl/math/atanpi.h 
libclc/opencl/include/clc/opencl/math/cbrt.h 
libclc/opencl/include/clc/opencl/math/ceil.h 
libclc/opencl/include/clc/opencl/math/copysign.h 
libclc/opencl/include/clc/opencl/math/cos.h 
libclc/opencl/include/clc/opencl/math/cosh.h 
libclc/opencl/include/clc/opencl/math/cospi.h 
libclc/opencl/include/clc/opencl/math/erf.h 
libclc/opencl/include/clc/opencl/math/erfc.h 
libclc/opencl/include/clc/opencl/math/exp.h 
libclc/opencl/include/clc/opencl/math/exp10.h 
libclc/opencl/include/clc/opencl/math/exp2.h 
libclc/opencl/include/clc/opencl/math/expm1.h 
libclc/opencl/include/clc/opencl/math/fabs.h 
libclc/opencl/include/clc/opencl/math/fdim.h 
libclc/opencl/include/clc/opencl/math/floor.h 
libclc/opencl/include/clc/opencl/math/fma.h 
libclc/opencl/include/clc/opencl/math/fmax.h 
libclc/opencl/include/clc/opencl/math/fmin.h 
libclc/opencl/include/clc/opencl/math/fmod.h 
libclc/opencl/include/clc/opencl/math/fract.h 
libclc/opencl/include/clc/opencl/math/frexp.h 
libclc/opencl/include/clc/opencl/math/frexp.inc 
libclc/opencl/include/clc/opencl/math/half_cos.h 
libclc/opencl/include/clc/opencl/math/half_divide.h 
libclc/opencl/include/clc/opencl/math/half_exp.h 
libclc/opencl/include/clc/opencl/math/half_exp10.h 
libclc/opencl/include/clc/opencl/math/half_exp2.h 
libclc/opencl/include/clc/opencl/math/half_log.h 
libclc/opencl/include/clc/opencl/math/half_log10.h 
libclc/opencl/include/clc/opencl/math/half_log2.h 
libclc/opencl/include/clc/opencl/math/half_powr.h 
libclc/opencl/include/clc/opencl/math/half_recip.h 
libclc/opencl/include/clc/opencl/math/half_rsqrt.h 
libclc/opencl/include/clc/opencl/math/half_sin.h 
libclc/opencl/include/clc/opencl/math/half_sqrt.h 
libclc/opencl/include/clc/opencl/math/half_tan.h 
libclc/opencl/include/clc/opencl/math/hypot.h 
libclc/opencl/include/clc/opencl/math/ilogb.h 
libclc/opencl/include/clc/opencl/math/ldexp.h 
libclc/opencl/include/clc/opencl/math/ldexp.inc 
libclc/opencl/include/clc/opencl/math/lgamma.h 
libclc/opencl/include/clc/opencl/math/lgamma_r.h 
libclc/opencl/include/clc/opencl/math/log.h 
libclc/opencl/include/clc/opencl/math/log10.h 
libclc/opencl/include/clc/opencl/math/log1p.h 
libclc/opencl/include/clc/opencl/math/log2.h 
libclc/opencl/include/clc/opencl/math/logb.h 
libclc/opencl/include/clc/opencl/math/mad.h 
libclc/opencl/include/clc/opencl/math/maxmag.h 
libclc/opencl/include/clc/opencl/math/minmag.h 
libclc/opencl/include/clc/opencl/math/modf.h 
libclc/opencl/include/clc/opencl/math/nan.h 
libclc/opencl/include/clc/opencl/math/nan.inc 
libclc/opencl/include/clc/opencl/math/native_cos.h 
libclc/opencl/include/clc/opencl/math/native_divide.h 
libclc/opencl/include/clc/opencl/math/native_exp.h 
libclc/opencl/include/clc/opencl/math/native_exp10.h 
libclc/opencl/include/clc/opencl/math/native_exp2.h 
libclc/opencl/include/clc/opencl/math/native_log.h 
libclc/opencl/include/clc/opencl/math/native_log10.h 
libclc/opencl/include/clc/opencl/math/native_log2.h 
libclc/opencl/include/clc/opencl/math/native_powr.h 
libclc/opencl/include/clc/opencl/math/native_recip.h 
libclc/opencl/include/clc/opencl/math/native_rsqrt.h 
libclc/opencl/include/clc/opencl/math/native_sin.h 
libclc/opencl/include/clc/opencl/math/native_sqrt.h 
libclc/opencl/include/clc/opencl/math/native_tan.h 
libclc/opencl/include/clc/opencl/math/nextafter.h 
libclc/opencl/include/clc/opencl/math/pow.h 
libclc/opencl/include/clc/opencl/math/pown.h 
libclc/opencl/include/clc/opencl/math/powr.h 
libclc/opencl/include/clc/opencl/math/remainder.h 
libclc/opencl/include/clc/opencl/math/remquo.h 
libclc/opencl/include/clc/opencl/math/rint.h 
libclc/opencl/include/clc/opencl/math/rootn.h 
libclc/opencl/include/clc/opencl/math/round.h 
libclc/opencl/include/clc/opencl/math/rsqrt.h 
libclc/opencl/include/clc/opencl/math/sin.h 
libclc/opencl/include/clc/opencl/math/sincos.h 
libclc/opencl/include/clc/opencl/math/sinh.h 
libclc/opencl/include/clc/opencl/math/sinpi.h 
libclc/opencl/include/clc/opencl/math/sqrt.h 
libclc/opencl/include/clc/opencl/math/tan.h 
libclc/opencl/include/clc/opencl/math/tanh.h 
libclc/opencl/include/clc/opencl/math/tanpi.h 
libclc/opencl/include/clc/opencl/math/tgamma.h 
libclc/opencl/include/clc/opencl/math/trunc.h 
libclc/opencl/include/clc/opencl/misc/shuffle.h 
libclc/opencl/include/clc/opencl/misc/shuffle2.h 
libclc/opencl/include/clc/opencl/relational/all.h 
libclc/opencl/include/clc/opencl/relational/any.h 
libclc/opencl/include/clc/opencl/relational/bitselect.h 
libclc/opencl/include/clc/opencl/relational/bitselect.inc 
libclc/opencl/include/clc/opencl/relational/isequal.h 
libclc/opencl/include/clc/opencl/relational/isfinite.h 
libclc/opencl/include/clc/opencl/relational/isgreater.h 
libclc/opencl/include/clc/opencl/relational/isgreaterequal.h 
libclc/opencl/include/clc/opencl/relational/isinf.h 
libclc/opencl/include/clc/opencl/relational/isless.h 
libclc/opencl/include/clc/opencl/relational/islessequal.h 
libclc/opencl/include/clc/opencl/relational/islessgreater.h 
libclc/opencl/include/clc/opencl/relational/isnan.h 
libclc/opencl/include/clc/opencl/relational/isnormal.h 
libclc/opencl/include/clc/opencl/relational/isnotequal.h 
libclc/opencl/include/clc/opencl/relational/isordered.h 
libclc/opencl/include/clc/opencl/relational/isunordered.h 
libclc/opencl/include/clc/opencl/relational/select.h 
libclc/opencl/include/clc/opencl/relational/signbit.h 
libclc/opencl/include/clc/opencl/shared/clamp.h 
libclc/opencl/include/clc/opencl/shared/clamp.inc 
libclc/opencl/include/clc/opencl/shared/max.h 
libclc/opencl/include/clc/opencl/shared/max.inc 
libclc/opencl/include/clc/opencl/shared/min.h 
libclc/opencl/include/clc/opencl/shared/min.inc 
libclc/opencl/include/clc/opencl/shared/vload.h 
libclc/opencl/include/clc/opencl/shared/vstore.h 
libclc/opencl/include/clc/opencl/synchronization/barrier.h 
libclc/opencl/include/clc/opencl/synchronization/cl_mem_fence_flags.h 
libclc/opencl/include/clc/opencl/workitem/get_global_id.h 
libclc/opencl/include/clc/opencl/workitem/get_global_offset.h 
libclc/opencl/include/clc/opencl/workitem/get_global_size.h 
libclc/opencl/include/clc/opencl/workitem/get_group_id.h 
libclc/opencl/include/clc/opencl/workitem/get_local_id.h 
libclc/opencl/include/clc/opencl/workitem/get_local_size.h 
libclc/opencl/include/clc/opencl/workitem/get_num_groups.h 
libclc/opencl/include/clc/opencl/workitem/get_work_dim.h 
libclc/opencl/lib/amdgcn/cl_khr_int64_extended_atomics/minmax_helpers.ll 
libclc/opencl/lib/clspv/shared/vstore_half.inc 
libclc/opencl/lib/generic/async/async_work_group_copy.inc 
libclc/opencl/lib/generic/async/async_work_group_strided_copy.inc 
libclc/opencl/lib/generic/async/prefetch.inc 
libclc/opencl/lib/generic/atomic/atom_int32_binary.inc 
libclc/opencl/lib/generic/common/mix.inc 
libclc/opencl/lib/generic/geometric/fast_normalize.inc 
libclc/opencl/lib/generic/integer/abs.inc 
libclc/opencl/lib/generic/integer/abs_diff.inc 
libclc/opencl/lib/generic/math/fmax.inc libclc/opencl/lib/generic/math/fmin.inc 
libclc/opencl/lib/generic/math/ldexp.inc libclc/opencl/lib/generic/math/nan.inc 
libclc/opencl/lib/generic/math/remquo.inc 
libclc/opencl/lib/generic/relational/binary_def.inc 
libclc/opencl/lib/generic/relational/bitselect.inc 
libclc/opencl/lib/generic/relational/unary_def.inc 
libclc/opencl/lib/generic/shared/clamp.inc 
libclc/opencl/lib/generic/shared/max.inc 
libclc/opencl/lib/generic/shared/min.inc 
libclc/opencl/lib/generic/shared/vload_half.inc 
libclc/opencl/lib/generic/shared/vstore_half.inc 
libclc/opencl/lib/generic/subnormal_disable.ll 
libclc/opencl/lib/generic/subnormal_helper_func.ll 
libclc/opencl/lib/generic/subnormal_use_default.ll 
libclc/opencl/lib/r600/image/get_image_attributes_impl.ll 
libclc/opencl/lib/r600/image/read_image_impl.ll 
libclc/opencl/lib/r600/image/write_image_impl.ll
``````````

</details>


The following files introduce new uses of undef:
 - libclc/opencl/lib/r600/image/read_image_impl.ll
 - libclc/opencl/lib/r600/image/write_image_impl.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/140557
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to