[all-commits] [llvm/llvm-project] 33b0c6: [Libcalls, Attrs] Annotate libcalls with noundef

Dávid Bolvanský via All-commits all-commits at lists.llvm.org
Fri Feb 19 19:10:35 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 33b0c63775ce58014c55e285671e3315104a6076
      https://github.com/llvm/llvm-project/commit/33b0c63775ce58014c55e285671e3315104a6076
  Author: Dávid Bolvanský <david.bolvansky at gmail.com>
  Date:   2021-02-20 (Sat, 20 Feb 2021)

  Changed paths:
    M llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
    M llvm/test/Analysis/BasicAA/gep-alias.ll
    M llvm/test/Analysis/TypeBasedAliasAnalysis/memcpyopt.ll
    M llvm/test/Other/cgscc-libcall-update.ll
    M llvm/test/Transforms/InstCombine/2010-05-30-memcpy-Struct.ll
    M llvm/test/Transforms/InstCombine/AMDGPU/memcpy-from-constant.ll
    M llvm/test/Transforms/InstCombine/ARM/strcmp.ll
    M llvm/test/Transforms/InstCombine/align-addr.ll
    M llvm/test/Transforms/InstCombine/fortify-folding.ll
    M llvm/test/Transforms/InstCombine/getelementptr.ll
    M llvm/test/Transforms/InstCombine/malloc-free-delete.ll
    M llvm/test/Transforms/InstCombine/mem-deref-bytes-addrspaces.ll
    M llvm/test/Transforms/InstCombine/mem-deref-bytes.ll
    M llvm/test/Transforms/InstCombine/memccpy.ll
    M llvm/test/Transforms/InstCombine/memchr.ll
    M llvm/test/Transforms/InstCombine/memcmp-constant-fold.ll
    M llvm/test/Transforms/InstCombine/memcpy-from-global.ll
    M llvm/test/Transforms/InstCombine/memcpy-to-load.ll
    M llvm/test/Transforms/InstCombine/memcpy.ll
    M llvm/test/Transforms/InstCombine/memcpy_chk-1.ll
    M llvm/test/Transforms/InstCombine/memmove_chk-1.ll
    M llvm/test/Transforms/InstCombine/mempcpy.ll
    M llvm/test/Transforms/InstCombine/memset-1.ll
    M llvm/test/Transforms/InstCombine/memset_chk-1.ll
    M llvm/test/Transforms/InstCombine/objsize.ll
    M llvm/test/Transforms/InstCombine/printf-1.ll
    M llvm/test/Transforms/InstCombine/puts-1.ll
    M llvm/test/Transforms/InstCombine/snprintf.ll
    M llvm/test/Transforms/InstCombine/sprintf-1.ll
    M llvm/test/Transforms/InstCombine/stpcpy-1.ll
    M llvm/test/Transforms/InstCombine/stpcpy_chk-1.ll
    M llvm/test/Transforms/InstCombine/strchr-1.ll
    M llvm/test/Transforms/InstCombine/strcmp-1.ll
    M llvm/test/Transforms/InstCombine/strcmp-memcmp.ll
    M llvm/test/Transforms/InstCombine/strcpy-1.ll
    M llvm/test/Transforms/InstCombine/strcpy_chk-1.ll
    M llvm/test/Transforms/InstCombine/strcspn-1.ll
    M llvm/test/Transforms/InstCombine/strlen-1.ll
    M llvm/test/Transforms/InstCombine/strlen-2.ll
    M llvm/test/Transforms/InstCombine/strncat-2.ll
    M llvm/test/Transforms/InstCombine/strncmp-1.ll
    M llvm/test/Transforms/InstCombine/strncpy-1.ll
    M llvm/test/Transforms/InstCombine/strncpy-3.ll
    M llvm/test/Transforms/InstCombine/strncpy_chk-1.ll
    M llvm/test/Transforms/InstCombine/strpbrk-1.ll
    M llvm/test/Transforms/InstCombine/strrchr-1.ll
    M llvm/test/Transforms/InstCombine/strstr-1.ll
    M llvm/test/Transforms/LoopUnroll/WebAssembly/basic-unrolling.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/multiply-fused-loops.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/multiply-fused-multiple-blocks.ll
    M llvm/test/Transforms/LowerMatrixIntrinsics/multiply-fused.ll
    M llvm/test/Transforms/MemCpyOpt/lifetime.ll
    M llvm/test/Transforms/MemCpyOpt/memcpy-to-memset-with-lifetimes.ll
    M llvm/test/Transforms/MemCpyOpt/pr29105.ll

  Log Message:
  -----------
  [Libcalls, Attrs] Annotate libcalls with noundef

I think we can use here same logic as for nonnull.

strlen(X) - X must be noundef => valid pointer.

for libcalls with size arg, we add noundef only if size is known and greater than 0 - so pointers must be noundef (valid ones)

Reviewed By: jdoerfert, aqjune

Differential Revision: https://reviews.llvm.org/D95122




More information about the All-commits mailing list