[all-commits] [llvm/llvm-project] 195294: [Attributor][NFC] Reduce output verbosity

Johannes Doerfert via All-commits all-commits at lists.llvm.org
Mon Mar 20 17:45:02 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 19529458c4e7210297428152e4e311f71e00ff07
      https://github.com/llvm/llvm-project/commit/19529458c4e7210297428152e4e311f71e00ff07
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2023-03-20 (Mon, 20 Mar 2023)

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

  Log Message:
  -----------
  [Attributor][NFC] Reduce output verbosity


  Commit: d14ea2f6b45166f22169c82a9f73ebb404782ee5
      https://github.com/llvm/llvm-project/commit/d14ea2f6b45166f22169c82a9f73ebb404782ee5
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2023-03-20 (Mon, 20 Mar 2023)

  Changed paths:
    M llvm/test/Transforms/Attributor/value-simplify-instances.ll

  Log Message:
  -----------
  [Attributor][NFC] Precommit test exposing a bug


  Commit: 0fc63d4e642fcf79e9806dc3ae7a49defaae2479
      https://github.com/llvm/llvm-project/commit/0fc63d4e642fcf79e9806dc3ae7a49defaae2479
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2023-03-20 (Mon, 20 Mar 2023)

  Changed paths:
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    M llvm/test/Transforms/Attributor/IPConstantProp/PR26044.ll
    M llvm/test/Transforms/Attributor/dereferenceable-1.ll
    M llvm/test/Transforms/Attributor/heap_to_stack_gpu.ll
    M llvm/test/Transforms/Attributor/liveness.ll
    M llvm/test/Transforms/Attributor/lvi-after-jumpthreading.ll
    M llvm/test/Transforms/Attributor/nonnull.ll
    M llvm/test/Transforms/Attributor/potential.ll
    M llvm/test/Transforms/Attributor/range.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/willreturn.ll
    M llvm/test/Transforms/OpenMP/attributor_recursion_crash.ll

  Log Message:
  -----------
  [Attributor][FIX] Ensure loop PHI replacements are dynamically unique

Similar to loads, PHIs can be used to introduce non-dynamically unique
values into the simplification "algorithm". We need to check that PHIs
do not carry such a value from one iteration into the next as can cause
downstream reasoning to fail, e.g., downstream could think a comparison
is equal because the simplified values are equal while they are defined
in different loop iterations. Similarly, instructions in cycles are now
conservatively treated as non-dynamically unique. We could do better but
I'll leave that for the future.

The change in AAUnderlyingObjects allows us to ignore dynamically unique
when we simply look for underlying objects. The user of that AA should
be aware that the result might not be a dynamically unique value.


  Commit: b89558a2ae4b5b20a6f3e8ba0295439f947fd38c
      https://github.com/llvm/llvm-project/commit/b89558a2ae4b5b20a6f3e8ba0295439f947fd38c
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2023-03-20 (Mon, 20 Mar 2023)

  Changed paths:
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
    A llvm/test/Transforms/Attributor/reduced/openmp_opt_global_read.ll
    A llvm/test/Transforms/Attributor/reduced/openmp_opt_global_synced.ll
    M llvm/test/Transforms/OpenMP/value-simplify-openmp-opt.ll

  Log Message:
  -----------
  [OpenMP][FIX] Properly track and lookup Execution Domains

This is a two part fix. First, we need two Execution Domains (ED) to
track the values of a function. One for incoming values and one for
outgoing values. This was conflated before. Second, at the function
entry we need to look at the incoming information from call sites not
iterate over non-existing predecessors.


  Commit: 8f47fd05d53f60be40a52d09df9dedc970bbafc5
      https://github.com/llvm/llvm-project/commit/8f47fd05d53f60be40a52d09df9dedc970bbafc5
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2023-03-20 (Mon, 20 Mar 2023)

  Changed paths:
    M llvm/lib/Transforms/IPO/OpenMPOpt.cpp
    M llvm/test/Transforms/OpenMP/barrier_removal.ll

  Log Message:
  -----------
  [OpenMPOpt][FIX] Avoid removing barriers in callees

We could be smarter about this, e.g., if the callee has a single call
site, but for now we first avoid the miscompile.


  Commit: c0f3a3d7b50c6bec85b8c5eb8d821087499eec41
      https://github.com/llvm/llvm-project/commit/c0f3a3d7b50c6bec85b8c5eb8d821087499eec41
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2023-03-20 (Mon, 20 Mar 2023)

  Changed paths:
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    M llvm/test/Transforms/Attributor/heap_to_stack.ll
    M llvm/test/Transforms/Attributor/heap_to_stack_gpu.ll

  Log Message:
  -----------
  [Attributor][FIX] Avoid H2S on GPUs if the pointer can be shared

If the stack is not accessible by other threads, e.g., on a GPU, we need
to ensure heap-2-stack will not create a stack version of a pointer that
might be passed to another thread. Since passing through memory is by
default transparent, we need to register a callback and inspect stores
we might look through explicitly.


Compare: https://github.com/llvm/llvm-project/compare/9e2b164570c3...c0f3a3d7b50c


More information about the All-commits mailing list