[all-commits] [llvm/llvm-project] 02a4fc: [Attributor] Port AANonNull to the isImpliedByIR i...

Johannes Doerfert via All-commits all-commits at lists.llvm.org
Sun Jul 9 16:05:03 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 02a4fcec6bb2d0eec645c039d17cf947269d5fa1
      https://github.com/llvm/llvm-project/commit/02a4fcec6bb2d0eec645c039d17cf947269d5fa1
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2023-07-09 (Sun, 09 Jul 2023)

  Changed paths:
    M llvm/include/llvm/Transforms/IPO/Attributor.h
    M llvm/lib/Target/AMDGPU/AMDGPUAttributor.cpp
    M llvm/lib/Transforms/IPO/Attributor.cpp
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
    M llvm/test/Transforms/Attributor/ArgumentPromotion/attrs.ll
    M llvm/test/Transforms/Attributor/ArgumentPromotion/byval-2.ll
    M llvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead_2.ll
    M llvm/test/Transforms/Attributor/ArgumentPromotion/musttail.ll
    M llvm/test/Transforms/Attributor/ArgumentPromotion/variadic.ll
    M llvm/test/Transforms/Attributor/IPConstantProp/openmp_parallel_for.ll
    M llvm/test/Transforms/Attributor/callbacks.ll
    M llvm/test/Transforms/Attributor/callgraph.ll
    M llvm/test/Transforms/Attributor/chain.ll
    M llvm/test/Transforms/Attributor/depgraph.ll
    M llvm/test/Transforms/Attributor/dereferenceable-1.ll
    M llvm/test/Transforms/Attributor/liveness.ll
    M llvm/test/Transforms/Attributor/memory_locations.ll
    M llvm/test/Transforms/Attributor/misc.ll
    M llvm/test/Transforms/Attributor/nocapture-2.ll
    M llvm/test/Transforms/Attributor/nofree.ll
    M llvm/test/Transforms/Attributor/nonnull.ll
    M llvm/test/Transforms/Attributor/noundef.ll
    M llvm/test/Transforms/Attributor/openmp_parallel.ll
    M llvm/test/Transforms/Attributor/read_write_returned_arguments_scc.ll
    M llvm/test/Transforms/Attributor/readattrs.ll
    M llvm/test/Transforms/Attributor/returned.ll
    M llvm/test/Transforms/Attributor/value-simplify-instances.ll
    M llvm/test/Transforms/Attributor/value-simplify-pointer-info-struct.ll
    M llvm/test/Transforms/Attributor/value-simplify-pointer-info.ll
    M llvm/test/Transforms/Attributor/value-simplify.ll
    M llvm/test/Transforms/OpenMP/parallel_deletion.ll
    M llvm/test/Transforms/OpenMP/parallel_region_merging.ll
    M llvm/test/Transforms/OpenMP/value-simplify-openmp-opt.ll

  Log Message:
  -----------
  [Attributor] Port AANonNull to the isImpliedByIR interface

AANonNull is now the first AA that is always queried via the new APIs
and not created manually. Others will follow shortly to avoid trivial
AAs whenever possible.

This commit introduced some helper logic that will make it simpler to
port the next one. It also untangles AADereferenceable and AANonNull
such that the former does not keep a handle on the latter. Finally,
we stop deducing `nonnull` for `undef`, which was incorrect.


  Commit: aae749b275b3d568e9a8793b55fc953bcc90629b
      https://github.com/llvm/llvm-project/commit/aae749b275b3d568e9a8793b55fc953bcc90629b
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2023-07-09 (Sun, 09 Jul 2023)

  Changed paths:
    M llvm/include/llvm/Transforms/IPO/Attributor.h
    M llvm/lib/Transforms/IPO/Attributor.cpp
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    M llvm/test/Transforms/Attributor/ArgumentPromotion/variadic.ll
    M llvm/test/Transforms/Attributor/IPConstantProp/pthreads.ll
    M llvm/test/Transforms/Attributor/callbacks.ll
    M llvm/test/Transforms/Attributor/convergent.ll
    M llvm/test/Transforms/Attributor/memory_locations.ll
    M llvm/test/Transforms/Attributor/noalias.ll
    M llvm/test/Transforms/Attributor/nocapture-1.ll
    M llvm/test/Transforms/Attributor/norecurse.ll
    M llvm/test/Transforms/Attributor/nosync.ll
    M llvm/test/Transforms/Attributor/noundef.ll
    M llvm/test/Transforms/Attributor/readattrs.ll
    M llvm/test/Transforms/Attributor/undefined_behavior.ll
    M llvm/test/Transforms/Attributor/value-simplify-instances.ll
    M llvm/test/Transforms/Attributor/value-simplify-local-remote.ll
    M llvm/test/Transforms/Attributor/value-simplify-pointer-info.ll
    M llvm/test/Transforms/Attributor/value-simplify.ll

  Log Message:
  -----------
  [Attributor] Port AANoAlias to the isImpliedByIR interface

As part of this we do not annotate literal `null` and `undef/poison` as
`noalias` anymore. This was not really needed anyway.


  Commit: 59fd6105588179315706bf5c4f0dbe6684f6a183
      https://github.com/llvm/llvm-project/commit/59fd6105588179315706bf5c4f0dbe6684f6a183
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2023-07-09 (Sun, 09 Jul 2023)

  Changed paths:
    M llvm/include/llvm/Transforms/IPO/Attributor.h
    M llvm/lib/Transforms/IPO/Attributor.cpp
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    M llvm/test/Transforms/Attributor/ArgumentPromotion/2008-07-02-array-indexing.ll
    M llvm/test/Transforms/Attributor/ArgumentPromotion/control-flow.ll
    M llvm/test/Transforms/Attributor/ArgumentPromotion/dbg.ll
    M llvm/test/Transforms/Attributor/ArgumentPromotion/inalloca.ll
    M llvm/test/Transforms/Attributor/ArgumentPromotion/tail.ll
    M llvm/test/Transforms/Attributor/IPConstantProp/arg-type-mismatch.ll
    M llvm/test/Transforms/Attributor/IPConstantProp/openmp_parallel_for.ll
    M llvm/test/Transforms/Attributor/IPConstantProp/return-argument.ll
    M llvm/test/Transforms/Attributor/IPConstantProp/return-constant.ll
    M llvm/test/Transforms/Attributor/IPConstantProp/return-constants.ll
    M llvm/test/Transforms/Attributor/IPConstantProp/thread_local_acs.ll
    M llvm/test/Transforms/Attributor/align.ll
    M llvm/test/Transforms/Attributor/allow_list.ll
    M llvm/test/Transforms/Attributor/call-simplify-pointer-info.ll
    M llvm/test/Transforms/Attributor/depgraph.ll
    M llvm/test/Transforms/Attributor/dereferenceable-2-inseltpoison.ll
    M llvm/test/Transforms/Attributor/dereferenceable-2.ll
    M llvm/test/Transforms/Attributor/internal-noalias.ll
    M llvm/test/Transforms/Attributor/liveness.ll
    M llvm/test/Transforms/Attributor/memory_locations.ll
    M llvm/test/Transforms/Attributor/noalias.ll
    M llvm/test/Transforms/Attributor/nocapture-1.ll
    M llvm/test/Transforms/Attributor/nocapture-2.ll
    M llvm/test/Transforms/Attributor/nonnull.ll
    M llvm/test/Transforms/Attributor/norecurse.ll
    M llvm/test/Transforms/Attributor/nosync.ll
    M llvm/test/Transforms/Attributor/noundef.ll
    M llvm/test/Transforms/Attributor/openmp_parallel.ll
    M llvm/test/Transforms/Attributor/potential.ll
    M llvm/test/Transforms/Attributor/range.ll
    M llvm/test/Transforms/Attributor/read_write_returned_arguments_scc.ll
    M llvm/test/Transforms/Attributor/readattrs.ll
    M llvm/test/Transforms/Attributor/value-simplify-instances.ll
    M llvm/test/Transforms/Attributor/value-simplify-pointer-info.ll
    M llvm/test/Transforms/Attributor/value-simplify-reachability.ll
    M llvm/test/Transforms/Attributor/value-simplify.ll
    M llvm/test/Transforms/Attributor/willreturn.ll

  Log Message:
  -----------
  [Attributor] Port AANoUndef to the isImpliedByIR interface


  Commit: ebec3dd1bf516ada75f685e65cd344838f8ee4c5
      https://github.com/llvm/llvm-project/commit/ebec3dd1bf516ada75f685e65cd344838f8ee4c5
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2023-07-09 (Sun, 09 Jul 2023)

  Changed paths:
    M llvm/include/llvm/Transforms/IPO/Attributor.h
    M llvm/lib/Transforms/IPO/Attributor.cpp
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    M llvm/test/Transforms/Attributor/IPConstantProp/pthreads.ll
    M llvm/test/Transforms/Attributor/callbacks.ll
    M llvm/test/Transforms/Attributor/liveness.ll
    M llvm/test/Transforms/Attributor/memory_locations.ll
    M llvm/test/Transforms/Attributor/noalias.ll
    M llvm/test/Transforms/Attributor/nocapture-1.ll
    M llvm/test/Transforms/Attributor/nonnull.ll
    M llvm/test/Transforms/Attributor/noundef.ll
    M llvm/test/Transforms/Attributor/undefined_behavior.ll
    M llvm/test/Transforms/Attributor/value-simplify-local-remote.ll
    M llvm/test/Transforms/Attributor/value-simplify.ll

  Log Message:
  -----------
  [Attributor] Port AANoCapture to the isImpliedByIR interface

AANoCapture is now the first non-boolean AA that is always queried via
the new APIs and not created manually.

We explicitly do not manifest nocapture for `null` and `undef` anymore.


  Commit: 5163779232cd786b2da44b6aa2afb26770a65a0a
      https://github.com/llvm/llvm-project/commit/5163779232cd786b2da44b6aa2afb26770a65a0a
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2023-07-09 (Sun, 09 Jul 2023)

  Changed paths:
    M llvm/lib/Transforms/IPO/Attributor.cpp
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  Log Message:
  -----------
  [Attributor] Port AANoFree to the isImpliedByIR interface


  Commit: 0348652cb03b8b1f559bda377663ffd7404fc7ac
      https://github.com/llvm/llvm-project/commit/0348652cb03b8b1f559bda377663ffd7404fc7ac
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2023-07-09 (Sun, 09 Jul 2023)

  Changed paths:
    M llvm/include/llvm/Transforms/IPO/Attributor.h
    M llvm/lib/Transforms/IPO/Attributor.cpp
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    M llvm/test/Transforms/Attributor/willreturn.ll

  Log Message:
  -----------
  [Attributor] Port AAWillReturn to the checkAndQueryIRAttr interface


  Commit: 6e7eb729c04526fbff43a67631850a376360e523
      https://github.com/llvm/llvm-project/commit/6e7eb729c04526fbff43a67631850a376360e523
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2023-07-09 (Sun, 09 Jul 2023)

  Changed paths:
    M llvm/lib/Transforms/IPO/Attributor.cpp
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  Log Message:
  -----------
  [Attributor] Port AAMustProgress to the checkAndQueryIRAttr interface


  Commit: c33fa5a6f8f353f534492ba02a51739a116be73f
      https://github.com/llvm/llvm-project/commit/c33fa5a6f8f353f534492ba02a51739a116be73f
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2023-07-09 (Sun, 09 Jul 2023)

  Changed paths:
    M llvm/lib/Transforms/IPO/Attributor.cpp
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  Log Message:
  -----------
  [Attributor] Port AANoUnwind to the isImpliedByIR interface


  Commit: c2727286244833849df5a88b09bd14bc094a9dda
      https://github.com/llvm/llvm-project/commit/c2727286244833849df5a88b09bd14bc094a9dda
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2023-07-09 (Sun, 09 Jul 2023)

  Changed paths:
    M llvm/lib/Transforms/IPO/Attributor.cpp
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  Log Message:
  -----------
  [Attributor] Port AANoSync to the isImpliedByIR interface


  Commit: 18d9f7ebbaa6022fb924c1607a0edc7ebe6ec8b8
      https://github.com/llvm/llvm-project/commit/18d9f7ebbaa6022fb924c1607a0edc7ebe6ec8b8
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2023-07-09 (Sun, 09 Jul 2023)

  Changed paths:
    M llvm/include/llvm/Transforms/IPO/Attributor.h
    M llvm/lib/Transforms/IPO/Attributor.cpp
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  Log Message:
  -----------
  [Attributor] Port AANoReturn to the isImpliedByIR interface


  Commit: ba7cc56782dbf4a26c0a043dd33c7949366e2b0d
      https://github.com/llvm/llvm-project/commit/ba7cc56782dbf4a26c0a043dd33c7949366e2b0d
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2023-07-09 (Sun, 09 Jul 2023)

  Changed paths:
    M llvm/lib/Transforms/IPO/Attributor.cpp
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp

  Log Message:
  -----------
  [Attributor] Port AANoRecurse to the isImpliedByIR interface


Compare: https://github.com/llvm/llvm-project/compare/bfd94882f264...ba7cc56782db


More information about the All-commits mailing list