[all-commits] [llvm/llvm-project] d65ef4: [InstCombine] Add test for -expensive-combines opt...

Nikita Popov via All-commits all-commits at lists.llvm.org
Mon Feb 10 02:32:40 PST 2020


  Branch: refs/heads/release/10.x
  Home:   https://github.com/llvm/llvm-project
  Commit: d65ef4321e6f244e68b191c84b8c76fb06662573
      https://github.com/llvm/llvm-project/commit/d65ef4321e6f244e68b191c84b8c76fb06662573
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2020-02-10 (Mon, 10 Feb 2020)

  Changed paths:
    A llvm/test/Transforms/InstCombine/expensive-combines.ll

  Log Message:
  -----------
  [InstCombine] Add test for -expensive-combines option; NFC

This shows that -expensive-combines=0 is ignored.

(cherry picked from commit 2d0d4235a282e0f900d31ac1054aafc0c526245c)


  Commit: d9b836dc6f78c5fb1f1b425943e1335b235b32d8
      https://github.com/llvm/llvm-project/commit/d9b836dc6f78c5fb1f1b425943e1335b235b32d8
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2020-02-10 (Mon, 10 Feb 2020)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
    M llvm/test/Transforms/InstCombine/expensive-combines.ll

  Log Message:
  -----------
  [InstCombine] Support disabling expensive combines in opt

Currently, there is no way to disable ExpensiveCombines when doing
a standalone opt -instcombine run, as that's the default, and the
opt option can currently only be used to force enable, not to force
disable. The only way to disable expensive combines is via -O1 or -O2,
but that of course also runs the rest of the kitchen sink...

This patch allows using opt -instcombine -expensive-combines=0 to
run InstCombine without ExpensiveCombines.

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

(cherry picked from commit 2ca092f3209579fde7a38ade511c1bbcef213c36)


  Commit: fc12083cbc5caa0e60a8e12bab9c34f71a4b31b1
      https://github.com/llvm/llvm-project/commit/fc12083cbc5caa0e60a8e12bab9c34f71a4b31b1
  Author: Nikita Popov <nikita.ppv at gmail.com>
  Date:   2020-02-10 (Mon, 10 Feb 2020)

  Changed paths:
    M llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp
    A llvm/test/Transforms/InstCombine/pr44541.ll

  Log Message:
  -----------
  [InstCombine] Fix infinite min/max canonicalization loop (PR44541)

While D72944 also fixes https://bugs.llvm.org/show_bug.cgi?id=44541,
it does so in a more roundabout manner and there might be other
loopholes to trigger the same issue. This is a more direct fix,
that prevents the transform if the min/max is based on a
non-canonical sub X, 0 instruction.

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

(cherry picked from commit a148b9e9909db6a592609eb35b4de38c9e67cb8b)


Compare: https://github.com/llvm/llvm-project/compare/9db3e5d5156b...fc12083cbc5c


More information about the All-commits mailing list