[all-commits] [llvm/llvm-project] 74ace2: [Attributor] Ensure no recursive reasoning is used...

Johannes Doerfert via All-commits all-commits at lists.llvm.org
Thu Jan 12 00:21:14 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 74ace2c7aedef89d341e997e87c82475b0181201
      https://github.com/llvm/llvm-project/commit/74ace2c7aedef89d341e997e87c82475b0181201
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2023-01-12 (Thu, 12 Jan 2023)

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

  Log Message:
  -----------
  [Attributor] Ensure no recursive reasoning is used for isAssumedDead

This is a precaution for the future.


  Commit: 2d9f44512e5cf288c945123293b3408a91dee7c0
      https://github.com/llvm/llvm-project/commit/2d9f44512e5cf288c945123293b3408a91dee7c0
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2023-01-12 (Thu, 12 Jan 2023)

  Changed paths:
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    M llvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead.ll
    M llvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead_2.ll
    M llvm/test/Transforms/Attributor/IPConstantProp/2009-09-24-byval-ptr.ll
    M llvm/test/Transforms/Attributor/IPConstantProp/multiple_callbacks.ll
    M llvm/test/Transforms/Attributor/IPConstantProp/return-constants.ll
    M llvm/test/Transforms/Attributor/align.ll
    M llvm/test/Transforms/Attributor/internal-noalias.ll
    M llvm/test/Transforms/Attributor/memory_locations.ll
    M llvm/test/Transforms/Attributor/misc.ll
    M llvm/test/Transforms/Attributor/nonnull.ll
    M llvm/test/Transforms/Attributor/value-simplify-gpu.ll
    M llvm/test/Transforms/Attributor/value-simplify.ll

  Log Message:
  -----------
  [Attributor] Make AAIsDeadFunction lazy


  Commit: cefa5cefdce2d5090002c3116403f7e5ca5700b9
      https://github.com/llvm/llvm-project/commit/cefa5cefdce2d5090002c3116403f7e5ca5700b9
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2023-01-12 (Thu, 12 Jan 2023)

  Changed paths:
    M llvm/include/llvm/Transforms/IPO/Attributor.h
    M llvm/lib/Transforms/IPO/Attributor.cpp
    M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
    M llvm/test/Transforms/OpenMP/get_hardware_num_threads_in_block_fold.ll

  Log Message:
  -----------
  [OpenMP] Replace ExternalizationRAII with virtual uses

The externalization was always a stopgap solution. One of the drawbacks
is that it is very conservative no matter if we actually require the
functions at the end of the pass. The new concept is more generic and
properly integrates into the dependence graph. Whenever we might need a
function, it has a "virtual use" that cannot be analyzed. If we do not
because of some AA state, there will be a dependence to ensure state
changes trigger revisits of uses, including a potentially new virtual
use.


Compare: https://github.com/llvm/llvm-project/compare/6aff41ef37a4...cefa5cefdce2


More information about the All-commits mailing list