[all-commits] [llvm/llvm-project] ead355: [LoopUtils] Freeze compare results for diff checks...

Florian Hahn via All-commits all-commits at lists.llvm.org
Tue Nov 21 02:55:33 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ead35564c0136fef0c1efface7b9857ad87af9de
      https://github.com/llvm/llvm-project/commit/ead35564c0136fef0c1efface7b9857ad87af9de
  Author: Florian Hahn <flo at fhahn.com>
  Date:   2023-11-21 (Tue, 21 Nov 2023)

  Changed paths:
    M llvm/lib/Transforms/Utils/LoopUtils.cpp
    M llvm/test/Transforms/LoopVectorize/forked-pointers.ll
    M llvm/test/Transforms/LoopVectorize/pointer-select-runtime-checks.ll

  Log Message:
  -----------
  [LoopUtils] Freeze compare results for diff checks instead of pointers.

THe freezes are introduced to avoid branch on undef/poison, if any of
the pointers may be poison. The same can be achieved by just freezing
the compare, which reduces the number of freezes needed. See
https://alive2.llvm.org/ce/z/NHa_ud

Note that the individual compares need to be frozen and it is not
sufficient to only freeze the resulting OR:

Result OR frozen only (UNSOUND): https://alive2.llvm.org/ce/z/YzFHQY
Individual conds frozen (SOUND): https://alive2.llvm.org/ce/z/5L6Z3f




More information about the All-commits mailing list