jmciver created this revision. Herald added subscribers: mattd, asavonic, jdoerfert, pengfei. Herald added a project: All. jmciver retitled this revision from "[clang][CodeGen] Add noundef metadata to scalar load instructions" to "[clang][CodeGen] Add noundef metadata to scalar load instructions (preliminary)". jmciver edited the summary of this revision. jmciver retitled this revision from "[clang][CodeGen] Add noundef metadata to scalar load instructions (preliminary)" to "[clang][CodeGen] Add noundef metadata to load instructions (preliminary)". jmciver edited the summary of this revision. jmciver added reviewers: nikic, efriedma, aqjune, rjmccall. jmciver published this revision for review. Herald added a reviewer: jdoerfert. Herald added subscribers: cfe-commits, pcwang-thead, sstefan1. Herald added a project: clang.
This patch adds noundef metadata to scalar load instructions and is intended to gain implementation feedback before proceeding to adding noundef to other load types. The intent is to apply noundef to scalar load instructions that are not of type: - char (if the target system maps to unsigned char) - unsigned char - std::byte These types are excluded because of their different indeterminate value semantics (I think this is correct, but need to ask someone). Feedback is greatly appreciated. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D134410 Files: clang/lib/CodeGen/CGExpr.cpp clang/test/CodeGen/X86/avx-builtins.c clang/test/CodeGen/X86/avx512bw-builtins.c clang/test/CodeGen/X86/avx512f-builtins.c clang/test/CodeGen/X86/avx512fp16-builtins.c clang/test/CodeGen/X86/avx512vl-builtins.c clang/test/CodeGen/X86/avx512vlbw-builtins.c clang/test/CodeGen/X86/sse-builtins.c clang/test/CodeGen/X86/sse2-builtins.c clang/test/CodeGen/aarch64-ls64-inline-asm.c clang/test/CodeGen/aarch64-ls64.c clang/test/CodeGen/memcpy-inline-builtin.c clang/test/CodeGen/tbaa-array.cpp clang/test/CodeGen/tbaa-base.cpp clang/test/CodeGen/tbaa.cpp clang/test/CodeGen/ubsan-pass-object-size.c clang/test/CodeGenCXX/attr-likelihood-if-branch-weights.cpp clang/test/CodeGenCXX/attr-likelihood-switch-branch-weights.cpp clang/test/CodeGenCXX/builtin-bit-cast-no-tbaa.cpp clang/test/CodeGenCXX/debug-info-line.cpp clang/test/CodeGenCXX/pr12251.cpp clang/test/CodeGenCXX/pragma-followup_inner.cpp clang/test/OpenMP/cancel_codegen.cpp clang/test/OpenMP/cancellation_point_codegen.cpp clang/test/OpenMP/distribute_codegen.cpp clang/test/OpenMP/distribute_parallel_for_codegen.cpp clang/test/OpenMP/distribute_parallel_for_reduction_task_codegen.cpp clang/test/OpenMP/distribute_parallel_for_simd_codegen.cpp clang/test/OpenMP/distribute_parallel_for_simd_firstprivate_codegen.cpp clang/test/OpenMP/distribute_parallel_for_simd_lastprivate_codegen.cpp clang/test/OpenMP/distribute_parallel_for_simd_private_codegen.cpp clang/test/OpenMP/distribute_parallel_for_simd_proc_bind_codegen.cpp clang/test/OpenMP/distribute_simd_codegen.cpp clang/test/OpenMP/distribute_simd_firstprivate_codegen.cpp clang/test/OpenMP/distribute_simd_lastprivate_codegen.cpp clang/test/OpenMP/distribute_simd_private_codegen.cpp clang/test/OpenMP/distribute_simd_reduction_codegen.cpp clang/test/OpenMP/for_reduction_task_codegen.cpp clang/test/OpenMP/irbuilder_safelen.cpp clang/test/OpenMP/irbuilder_simdlen.cpp clang/test/OpenMP/irbuilder_simdlen_safelen.cpp clang/test/OpenMP/master_taskloop_in_reduction_codegen.cpp clang/test/OpenMP/master_taskloop_simd_in_reduction_codegen.cpp clang/test/OpenMP/nvptx_target_parallel_reduction_codegen_tbaa_PR46146.cpp clang/test/OpenMP/nvptx_target_teams_distribute_parallel_for_simd_codegen.cpp clang/test/OpenMP/ordered_codegen.cpp clang/test/OpenMP/parallel_for_codegen.cpp clang/test/OpenMP/parallel_for_reduction_task_codegen.cpp clang/test/OpenMP/parallel_for_simd_aligned_codegen.cpp clang/test/OpenMP/parallel_for_simd_codegen.cpp clang/test/OpenMP/parallel_master_reduction_task_codegen.cpp clang/test/OpenMP/parallel_master_taskloop_codegen.cpp clang/test/OpenMP/parallel_master_taskloop_lastprivate_codegen.cpp clang/test/OpenMP/parallel_master_taskloop_simd_codegen.cpp clang/test/OpenMP/parallel_master_taskloop_simd_lastprivate_codegen.cpp clang/test/OpenMP/parallel_reduction_task_codegen.cpp clang/test/OpenMP/parallel_sections_reduction_task_codegen.cpp clang/test/OpenMP/sections_reduction_task_codegen.cpp clang/test/OpenMP/target_defaultmap_codegen_01.cpp clang/test/OpenMP/target_in_reduction_codegen.cpp clang/test/OpenMP/target_is_device_ptr_codegen.cpp clang/test/OpenMP/target_map_codegen_00.cpp clang/test/OpenMP/target_map_codegen_01.cpp clang/test/OpenMP/target_map_codegen_02.cpp clang/test/OpenMP/target_map_codegen_04.cpp clang/test/OpenMP/target_map_codegen_05.cpp clang/test/OpenMP/target_map_codegen_07.cpp clang/test/OpenMP/target_map_codegen_11.cpp clang/test/OpenMP/target_map_codegen_13.cpp clang/test/OpenMP/target_map_codegen_14.cpp clang/test/OpenMP/target_map_codegen_15.cpp clang/test/OpenMP/target_map_codegen_17.cpp clang/test/OpenMP/target_map_codegen_26.cpp clang/test/OpenMP/target_map_codegen_27.cpp clang/test/OpenMP/target_map_codegen_29.cpp clang/test/OpenMP/target_parallel_codegen.cpp clang/test/OpenMP/target_parallel_for_codegen.cpp clang/test/OpenMP/target_parallel_for_reduction_task_codegen.cpp clang/test/OpenMP/target_parallel_for_simd_codegen.cpp clang/test/OpenMP/target_parallel_reduction_task_codegen.cpp clang/test/OpenMP/target_teams_codegen.cpp clang/test/OpenMP/target_teams_distribute_codegen.cpp clang/test/OpenMP/target_teams_distribute_dist_schedule_codegen.cpp clang/test/OpenMP/target_teams_distribute_parallel_for_reduction_task_codegen.cpp clang/test/OpenMP/target_teams_distribute_parallel_for_schedule_codegen.cpp clang/test/OpenMP/target_teams_distribute_parallel_for_simd_codegen.cpp clang/test/OpenMP/target_teams_distribute_parallel_for_simd_collapse_codegen.cpp clang/test/OpenMP/target_teams_distribute_parallel_for_simd_dist_schedule_codegen.cpp clang/test/OpenMP/target_teams_distribute_parallel_for_simd_firstprivate_codegen.cpp clang/test/OpenMP/target_teams_distribute_parallel_for_simd_if_codegen.cpp clang/test/OpenMP/target_teams_distribute_parallel_for_simd_lastprivate_codegen.cpp clang/test/OpenMP/target_teams_distribute_parallel_for_simd_private_codegen.cpp clang/test/OpenMP/target_teams_distribute_parallel_for_simd_proc_bind_codegen.cpp clang/test/OpenMP/target_teams_distribute_parallel_for_simd_reduction_codegen.cpp clang/test/OpenMP/target_teams_distribute_parallel_for_simd_schedule_codegen.cpp clang/test/OpenMP/target_teams_distribute_simd_codegen.cpp clang/test/OpenMP/target_teams_distribute_simd_collapse_codegen.cpp clang/test/OpenMP/target_teams_distribute_simd_dist_schedule_codegen.cpp clang/test/OpenMP/target_teams_distribute_simd_firstprivate_codegen.cpp clang/test/OpenMP/target_teams_distribute_simd_lastprivate_codegen.cpp clang/test/OpenMP/target_teams_distribute_simd_private_codegen.cpp clang/test/OpenMP/target_teams_distribute_simd_reduction_codegen.cpp clang/test/OpenMP/target_update_codegen.cpp clang/test/OpenMP/task_affinity_codegen.cpp clang/test/OpenMP/task_codegen.cpp clang/test/OpenMP/task_if_codegen.cpp clang/test/OpenMP/task_in_reduction_codegen.cpp clang/test/OpenMP/task_member_call_codegen.cpp clang/test/OpenMP/task_target_device_codegen.c clang/test/OpenMP/taskloop_in_reduction_codegen.cpp clang/test/OpenMP/taskloop_simd_in_reduction_codegen.cpp clang/test/OpenMP/teams_distribute_dist_schedule_codegen.cpp clang/test/OpenMP/teams_distribute_parallel_for_reduction_task_codegen.cpp clang/test/OpenMP/teams_distribute_parallel_for_schedule_codegen.cpp clang/test/OpenMP/teams_distribute_parallel_for_simd_codegen.cpp clang/test/OpenMP/teams_distribute_parallel_for_simd_collapse_codegen.cpp clang/test/OpenMP/teams_distribute_parallel_for_simd_dist_schedule_codegen.cpp clang/test/OpenMP/teams_distribute_parallel_for_simd_firstprivate_codegen.cpp clang/test/OpenMP/teams_distribute_parallel_for_simd_lastprivate_codegen.cpp clang/test/OpenMP/teams_distribute_parallel_for_simd_num_threads_codegen.cpp clang/test/OpenMP/teams_distribute_parallel_for_simd_private_codegen.cpp clang/test/OpenMP/teams_distribute_parallel_for_simd_proc_bind_codegen.cpp clang/test/OpenMP/teams_distribute_parallel_for_simd_reduction_codegen.cpp clang/test/OpenMP/teams_distribute_parallel_for_simd_schedule_codegen.cpp clang/test/OpenMP/teams_distribute_simd_codegen.cpp clang/test/OpenMP/teams_distribute_simd_collapse_codegen.cpp clang/test/OpenMP/teams_distribute_simd_dist_schedule_codegen.cpp clang/test/OpenMP/teams_distribute_simd_firstprivate_codegen.cpp clang/test/OpenMP/teams_distribute_simd_lastprivate_codegen.cpp clang/test/OpenMP/teams_distribute_simd_private_codegen.cpp clang/test/OpenMP/teams_distribute_simd_reduction_codegen.cpp clang/test/utils/update_cc_test_checks/Inputs/basic-cplusplus.cpp.expected clang/test/utils/update_cc_test_checks/Inputs/check-attributes.cpp.funcattrs.expected clang/test/utils/update_cc_test_checks/Inputs/check-attributes.cpp.plain.expected clang/test/utils/update_cc_test_checks/Inputs/def-and-decl.c.expected clang/test/utils/update_cc_test_checks/Inputs/explicit-template-instantiation.cpp.expected clang/test/utils/update_cc_test_checks/Inputs/generated-funcs-regex.c.expected clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.generated.expected clang/test/utils/update_cc_test_checks/Inputs/generated-funcs.c.no-generated.expected clang/test/utils/update_cc_test_checks/Inputs/mangled_names.c.expected clang/test/utils/update_cc_test_checks/Inputs/mangled_names.c.funcsig.expected clang/test/utils/update_cc_test_checks/Inputs/resolve-tmp-conflict.cpp.expected _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits