[all-commits] [llvm/llvm-project] 1badf7: [InstComine] Forego of one-use check in `(X - (X &...

Roman Lebedev via All-commits all-commits at lists.llvm.org
Fri Mar 6 10:39:37 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 1badf7c33a5d01900c77646f750e2ea11ad8bf5a
      https://github.com/llvm/llvm-project/commit/1badf7c33a5d01900c77646f750e2ea11ad8bf5a
  Author: Roman Lebedev <lebedev.ri at gmail.com>
  Date:   2020-03-06 (Fri, 06 Mar 2020)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
    M llvm/test/Transforms/InstCombine/sub.ll
    M llvm/test/Transforms/LoopUnroll/runtime-loop-multiple-exits.ll
    M llvm/test/Transforms/LoopUnroll/runtime-unroll-remainder.ll
    M llvm/test/Transforms/LoopVectorize/X86/float-induction-x86.ll
    M llvm/test/Transforms/PhaseOrdering/reassociate-after-unroll.ll

  Log Message:
  -----------
  [InstComine] Forego of one-use check in `(X - (X & Y))   -->   (X & ~Y)` if Y is a constant

Summary:
This is potentially more friendly for further optimizations,
analysies, e.g.: https://godbolt.org/z/G24anE

This resolves phase-ordering bug that was introduced
in D75145 for https://godbolt.org/z/2gBwF2
https://godbolt.org/z/XvgSua

Reviewers: spatel, nikic, dmgreen, xbolva00

Reviewed By: nikic, xbolva00

Subscribers: hiraditya, zzheng, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D75757




More information about the All-commits mailing list