[all-commits] [llvm/llvm-project] 5b8e1a: [SCEVExpander] Do not reuse disjoint or (#80281)

Nikita Popov via All-commits all-commits at lists.llvm.org
Fri Feb 2 01:52:17 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 5b8e1a6ebf11b6e93bcc96a0d009febe4bb3d7bc
      https://github.com/llvm/llvm-project/commit/5b8e1a6ebf11b6e93bcc96a0d009febe4bb3d7bc
  Author: Nikita Popov <npopov at redhat.com>
  Date:   2024-02-02 (Fri, 02 Feb 2024)

  Changed paths:
    M llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
    M llvm/test/Transforms/IndVarSimplify/pr79861.ll

  Log Message:
  -----------
  [SCEVExpander] Do not reuse disjoint or (#80281)

SCEV treats "or disjoint" the same as "add nsw nuw". However, when
expanding, we cannot generally replace an add SCEV node with an "or
disjoint" instruction. Just dropping the poison flag is insufficient in
this case, we would have to actually convert the or into an add.

This is a partial fix for #79861.




More information about the All-commits mailing list