[all-commits] [llvm/llvm-project] 142897: [Attributor] Only non-exact accesses require a uni...

Johannes Doerfert via All-commits all-commits at lists.llvm.org
Wed Jul 20 15:35:16 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 142897dd7d587eb7ab6827a626675438527ef75e
      https://github.com/llvm/llvm-project/commit/142897dd7d587eb7ab6827a626675438527ef75e
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2022-07-20 (Wed, 20 Jul 2022)

  Changed paths:
    M llvm/lib/Transforms/IPO/Attributor.cpp
    M llvm/test/Transforms/Attributor/value-simplify-gpu.ll

  Log Message:
  -----------
  [Attributor] Only non-exact accesses require a uniform bit-pattern (=0)

If we only have exact accesses we should never require the bit-pattern
to be uniform (in this case 0). Only a non-exact access should force us
to require only 0 values.


  Commit: ad98ef8be4091c41adc2ee4086b342cbc04157de
      https://github.com/llvm/llvm-project/commit/ad98ef8be4091c41adc2ee4086b342cbc04157de
  Author: Johannes Doerfert <johannes at jdoerfert.de>
  Date:   2022-07-20 (Wed, 20 Jul 2022)

  Changed paths:
    M llvm/lib/Transforms/IPO/AttributorAttributes.cpp
    M llvm/test/Transforms/Attributor/value-simplify-pointer-info.ll

  Log Message:
  -----------
  [Attributor] Deal with complex PHI nodes better during AAPointerInfo

We were quite conservative when it came to PHI node handling to avoid
recursive reasoning. Now we check more direct if we have seen a PHI
already or not. This allows non-recursive PHI chains to be handled.

This also exposed a bug as we did only model the effect of one loop
traversal. `phi_no_store_3` has been adapted to show how we would have
used `undef` instead of `1` before. With this patch we don't replace
it at all, which is expected as we do not argue about loop iterations
(or alignments).


Compare: https://github.com/llvm/llvm-project/compare/67f1fe859781...ad98ef8be409


More information about the All-commits mailing list