[all-commits] [llvm/llvm-project] f89f7d: [IR] Convert null-pointer-is-valid into an enum at...

Nikita Popov via All-commits all-commits at lists.llvm.org
Fri May 15 10:42:38 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: f89f7da999f362e4213c69923328dd1033276e59
      https://github.com/llvm/llvm-project/commit/f89f7da999f362e4213c69923328dd1033276e59
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2020-05-15 (Fri, 15 May 2020)

  Changed paths:
    M clang/lib/CodeGen/CGCall.cpp
    M clang/test/CodeGen/delete-null-pointer-checks.c
    M llvm/docs/LangRef.rst
    M llvm/include/llvm/Bitcode/LLVMBitCodes.h
    M llvm/include/llvm/IR/Attributes.td
    M llvm/include/llvm/IR/AutoUpgrade.h
    M llvm/lib/AsmParser/LLLexer.cpp
    M llvm/lib/AsmParser/LLParser.cpp
    M llvm/lib/AsmParser/LLToken.h
    M llvm/lib/Bitcode/Reader/BitcodeReader.cpp
    M llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
    M llvm/lib/IR/Attributes.cpp
    M llvm/lib/IR/AutoUpgrade.cpp
    M llvm/lib/IR/Function.cpp
    M llvm/lib/IR/Verifier.cpp
    M llvm/lib/Transforms/Utils/CodeExtractor.cpp
    M llvm/test/Analysis/MemorySSA/cyclicphi.ll
    M llvm/test/Analysis/ValueTracking/assume.ll
    M llvm/test/Bitcode/attributes.ll
    M llvm/test/Transforms/Attributor/IPConstantProp/PR26044.ll
    M llvm/test/Transforms/Attributor/align.ll
    M llvm/test/Transforms/Attributor/nocapture-1.ll
    M llvm/test/Transforms/Attributor/nonnull.ll
    M llvm/test/Transforms/Attributor/norecurse.ll
    M llvm/test/Transforms/Attributor/undefined_behavior.ll
    M llvm/test/Transforms/CorrelatedValuePropagation/non-null.ll
    M llvm/test/Transforms/FunctionAttrs/nocapture.ll
    M llvm/test/Transforms/FunctionAttrs/nonnull.ll
    M llvm/test/Transforms/GVN/PRE/2018-06-08-pre-load-dbgloc-no-null-opt.ll
    M llvm/test/Transforms/GlobalOpt/MallocSROA-section-no-null-opt.ll
    M llvm/test/Transforms/GlobalOpt/heap-sra-1-no-null-opt.ll
    M llvm/test/Transforms/GlobalOpt/heap-sra-1.ll
    M llvm/test/Transforms/GlobalOpt/heap-sra-2-no-null-opt.ll
    M llvm/test/Transforms/GlobalOpt/heap-sra-2.ll
    M llvm/test/Transforms/GlobalOpt/heap-sra-3-no-null-opt.ll
    M llvm/test/Transforms/GlobalOpt/heap-sra-3.ll
    M llvm/test/Transforms/GlobalOpt/heap-sra-4-no-null-opt.ll
    M llvm/test/Transforms/GlobalOpt/heap-sra-4.ll
    M llvm/test/Transforms/GlobalOpt/heap-sra-phi-no-null-opt.ll
    M llvm/test/Transforms/GlobalOpt/heap-sra-phi.ll
    M llvm/test/Transforms/GlobalOpt/load-store-global-no-null-opt.ll
    M llvm/test/Transforms/GlobalOpt/malloc-promote-1-no-null-opt.ll
    M llvm/test/Transforms/GlobalOpt/malloc-promote-1.ll
    M llvm/test/Transforms/GlobalOpt/malloc-promote-2-no-null-opt.ll
    M llvm/test/Transforms/GlobalOpt/malloc-promote-2.ll
    M llvm/test/Transforms/GlobalOpt/storepointer-compare-no-null-opt.ll
    M llvm/test/Transforms/GlobalOpt/storepointer-no-null-opt.ll
    M llvm/test/Transforms/IPConstantProp/PR26044.ll
    M llvm/test/Transforms/Inline/attributes.ll
    M llvm/test/Transforms/InstCombine/atomic.ll
    M llvm/test/Transforms/InstCombine/invariant.group.ll
    M llvm/test/Transforms/InstCombine/invoke.ll
    M llvm/test/Transforms/InstCombine/lifetime-no-null-opt.ll
    M llvm/test/Transforms/InstCombine/load.ll
    M llvm/test/Transforms/InstCombine/mem-deref-bytes.ll
    M llvm/test/Transforms/InstCombine/memchr.ll
    M llvm/test/Transforms/InstCombine/memcpy-addrspace.ll
    M llvm/test/Transforms/InstCombine/memcpy-from-global.ll
    M llvm/test/Transforms/InstCombine/memrchr.ll
    M llvm/test/Transforms/InstCombine/select.ll
    M llvm/test/Transforms/InstCombine/store.ll
    M llvm/test/Transforms/InstCombine/strchr-1.ll
    M llvm/test/Transforms/InstCombine/strcpy_chk-64.ll
    M llvm/test/Transforms/InstCombine/strlen-1.ll
    M llvm/test/Transforms/InstCombine/strncat-2.ll
    M llvm/test/Transforms/InstCombine/strncmp-1.ll
    M llvm/test/Transforms/InstCombine/strrchr-1.ll
    M llvm/test/Transforms/InstCombine/strstr-1.ll
    M llvm/test/Transforms/InstCombine/wcslen-1.ll
    M llvm/test/Transforms/InstSimplify/compare.ll
    M llvm/test/Transforms/LoopIdiom/pr28196.ll
    M llvm/test/Transforms/LoopVersioning/lcssa.ll
    M llvm/test/Transforms/SimplifyCFG/UnreachableEliminate.ll
    M llvm/test/Transforms/SimplifyCFG/invoke.ll
    M llvm/test/Transforms/SimplifyCFG/phi-undef-loadstore.ll
    M llvm/test/Transforms/SimplifyCFG/trap-no-null-opt-debugloc.ll
    M llvm/test/Transforms/SimplifyCFG/trapping-load-unreachable.ll
    M llvm/test/Transforms/Util/assume-builder.ll
    M mlir/test/Target/llvmir.mlir

  Log Message:
  -----------
  [IR] Convert null-pointer-is-valid into an enum attribute

The "null-pointer-is-valid" attribute needs to be checked by many
pointer-related combines. To make the check more efficient, convert
it from a string into an enum attribute.

In the future, this attribute may be replaced with data layout
properties.

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




More information about the All-commits mailing list