[all-commits] [llvm/llvm-project] 8e8d25: [ConstantFolding] Canonicalize constexpr GEPs to i...

Nikita Popov via All-commits all-commits at lists.llvm.org
Mon May 20 02:47:51 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 8e8d2595dafa230a3da7f410200d89f05b6e8d87
      https://github.com/llvm/llvm-project/commit/8e8d2595dafa230a3da7f410200d89f05b6e8d87
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-05-20 (Mon, 20 May 2024)

  Changed paths:
    M clang/test/CodeGen/RISCV/riscv-inline-asm.c
    M clang/test/CodeGen/attr-counted-by.c
    M clang/test/CodeGenCXX/atomicinit.cpp
    M clang/test/CodeGenCXX/auto-var-init.cpp
    M clang/test/Profile/c-unreachable-after-switch.c
    M compiler-rt/test/profile/Linux/counter_promo_for.c
    M compiler-rt/test/profile/Linux/counter_promo_while.c
    M llvm/lib/Analysis/ConstantFolding.cpp
    M llvm/test/Other/constant-fold-gep.ll
    M llvm/test/Other/optimize-inrange-gep.ll
    M llvm/test/Transforms/FunctionSpecialization/function-specialization-constant-expression.ll
    M llvm/test/Transforms/GVN/PRE/load-pre-licm.ll
    M llvm/test/Transforms/GVN/PRE/phi-translate-2.ll
    M llvm/test/Transforms/IndVarSimplify/D108043.ll
    M llvm/test/Transforms/IndVarSimplify/eliminate-exit-no-dl.ll
    M llvm/test/Transforms/IndVarSimplify/floating-point-small-iv.ll
    M llvm/test/Transforms/IndVarSimplify/lftr-dead-ivs.ll
    M llvm/test/Transforms/IndVarSimplify/lftr.ll
    M llvm/test/Transforms/InstCombine/addrspacecast.ll
    M llvm/test/Transforms/InstCombine/align-addr.ll
    M llvm/test/Transforms/InstCombine/binop-select-cast-of-select-cond.ll
    M llvm/test/Transforms/InstCombine/constant-fold-address-space-pointer.ll
    M llvm/test/Transforms/InstCombine/constant-fold-gep.ll
    M llvm/test/Transforms/InstCombine/fmul.ll
    M llvm/test/Transforms/InstCombine/force-opaque-ptr.ll
    M llvm/test/Transforms/InstCombine/fortify-folding.ll
    M llvm/test/Transforms/InstCombine/gep-custom-dl.ll
    M llvm/test/Transforms/InstCombine/getelementptr.ll
    M llvm/test/Transforms/InstCombine/hoist-xor-by-constant-from-xor-by-value.ll
    M llvm/test/Transforms/InstCombine/loadstore-alignment.ll
    M llvm/test/Transforms/InstCombine/memchr-2.ll
    M llvm/test/Transforms/InstCombine/memchr-4.ll
    M llvm/test/Transforms/InstCombine/memchr-6.ll
    M llvm/test/Transforms/InstCombine/memchr-7.ll
    M llvm/test/Transforms/InstCombine/memchr-8.ll
    M llvm/test/Transforms/InstCombine/memchr-9.ll
    M llvm/test/Transforms/InstCombine/memchr.ll
    M llvm/test/Transforms/InstCombine/memcmp-8.ll
    M llvm/test/Transforms/InstCombine/memcpy-from-global.ll
    M llvm/test/Transforms/InstCombine/memrchr-3.ll
    M llvm/test/Transforms/InstCombine/memrchr-4.ll
    M llvm/test/Transforms/InstCombine/merging-multiple-stores-into-successor.ll
    M llvm/test/Transforms/InstCombine/objsize.ll
    M llvm/test/Transforms/InstCombine/pr25342.ll
    M llvm/test/Transforms/InstCombine/pr33453.ll
    M llvm/test/Transforms/InstCombine/pr38984-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/pr38984.ll
    M llvm/test/Transforms/InstCombine/pr83947.ll
    M llvm/test/Transforms/InstCombine/ptr-replace-alloca.ll
    M llvm/test/Transforms/InstCombine/rem.ll
    M llvm/test/Transforms/InstCombine/select-and-or.ll
    M llvm/test/Transforms/InstCombine/simplify-libcalls-i16.ll
    M llvm/test/Transforms/InstCombine/simplify-libcalls.ll
    M llvm/test/Transforms/InstCombine/snprintf-2.ll
    M llvm/test/Transforms/InstCombine/snprintf-3.ll
    M llvm/test/Transforms/InstCombine/snprintf-4.ll
    M llvm/test/Transforms/InstCombine/stpcpy-1.ll
    M llvm/test/Transforms/InstCombine/stpcpy_chk-1.ll
    M llvm/test/Transforms/InstCombine/stpncpy-1.ll
    M llvm/test/Transforms/InstCombine/str-int-2.ll
    M llvm/test/Transforms/InstCombine/str-int-3.ll
    M llvm/test/Transforms/InstCombine/str-int-4.ll
    M llvm/test/Transforms/InstCombine/str-int-5.ll
    M llvm/test/Transforms/InstCombine/str-int.ll
    M llvm/test/Transforms/InstCombine/strcall-bad-sig.ll
    M llvm/test/Transforms/InstCombine/strcall-no-nul.ll
    M llvm/test/Transforms/InstCombine/strchr-1.ll
    M llvm/test/Transforms/InstCombine/strchr-3.ll
    M llvm/test/Transforms/InstCombine/strcmp-4.ll
    M llvm/test/Transforms/InstCombine/strlcpy-1.ll
    M llvm/test/Transforms/InstCombine/strlen-1.ll
    M llvm/test/Transforms/InstCombine/strlen-6.ll
    M llvm/test/Transforms/InstCombine/strpbrk-1.ll
    M llvm/test/Transforms/InstCombine/strrchr-1.ll
    M llvm/test/Transforms/InstCombine/strrchr-3.ll
    M llvm/test/Transforms/InstCombine/strstr-1.ll
    M llvm/test/Transforms/InstCombine/vec_demanded_elts-inseltpoison.ll
    M llvm/test/Transforms/InstCombine/vec_demanded_elts.ll
    M llvm/test/Transforms/InstCombine/wcslen-1.ll
    M llvm/test/Transforms/InstSimplify/ConstProp/gep-alias.ll
    M llvm/test/Transforms/InstSimplify/ConstProp/gep-constanfolding-error.ll
    M llvm/test/Transforms/InstSimplify/ConstProp/gep.ll
    M llvm/test/Transforms/InstSimplify/ConstProp/icmp-global.ll
    M llvm/test/Transforms/InstSimplify/compare.ll
    M llvm/test/Transforms/InstSimplify/past-the-end.ll
    M llvm/test/Transforms/LoopStrengthReduce/2011-12-19-PostincQuadratic.ll
    M llvm/test/Transforms/LoopStrengthReduce/X86/2012-01-13-phielim.ll
    M llvm/test/Transforms/LoopVectorize/X86/pr42674.ll
    M llvm/test/Transforms/LoopVectorize/pr47343-expander-lcssa-after-cfg-update.ll
    M llvm/test/Transforms/LoopVersioning/add-phi-update-users.ll
    M llvm/test/Transforms/LoopVersioning/bound-check-partially-known.ll
    M llvm/test/Transforms/NewGVN/loadforward.ll
    M llvm/test/Transforms/PhaseOrdering/SystemZ/sub-xor.ll
    M llvm/test/Transforms/PhaseOrdering/X86/excessive-unrolling.ll
    M llvm/test/Transforms/SCCP/2009-09-24-byval-ptr.ll
    M llvm/test/Transforms/SCCP/apint-bigint2.ll
    M llvm/test/Transforms/SLPVectorizer/AArch64/gather-cost.ll
    M llvm/test/Transforms/SLPVectorizer/X86/pr47623.ll

  Log Message:
  -----------
  [ConstantFolding] Canonicalize constexpr GEPs to i8 (#89872)

This patch canonicalizes constant expression GEPs to use i8 source
element type, aka ptradd. This is the ConstantFolding equivalent of the
InstCombine canonicalization introduced in #68882.

I believe all our optimizations working on constant expression GEPs
(like GlobalOpt etc) have already been switched to work on offsets, so I
don't expect any significant fallout from this change.

This is part of:
https://discourse.llvm.org/t/rfc-replacing-getelementptr-with-ptradd/68699



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list