[PATCH] D16835: InstCombine: Restrict computeKnownBits() on everyValue to OptLevel > 2

Matthias Braun via llvm-commits llvm-commits at lists.llvm.org
Tue Feb 2 18:14:48 PST 2016


MatzeB created this revision.
MatzeB added a reviewer: hfinkel.
MatzeB added subscribers: sanjoy, llvm-commits.
MatzeB set the repository for this revision to rL LLVM.
Herald added subscribers: mcrosier, joker.eph.

As part of r251146 InstCombine was extended to call computeKnownBits on
every value in the function to determine whether it happens to be
constant. This increases typical compiletime by 1-3% (5% in irgen+opt
time) in my measurements. On the other hand this case did not trigger
once in the whole llvm-testsuite.

This patch introduces the notion of ExpensiveCombines which are only
enabled for OptLevel > 2. I removed the check in InstructionSimplify as
that is called from various places where the OptLevel is not known but
given the rarity of the situation I think a check in InstCombine is
enough.

Repository:
  rL LLVM

http://reviews.llvm.org/D16835

Files:
  include/llvm/Transforms/IPO/PassManagerBuilder.h
  include/llvm/Transforms/InstCombine/InstCombine.h
  include/llvm/Transforms/Scalar.h
  lib/Transforms/IPO/PassManagerBuilder.cpp
  lib/Transforms/InstCombine/InstCombineInternal.h
  lib/Transforms/InstCombine/InstructionCombining.cpp
  test/Analysis/ValueTracking/known-bits-from-range-md.ll
  test/Transforms/InstCombine/all-bits-shift.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D16835.46732.patch
Type: text/x-patch
Size: 13562 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160203/f533f97f/attachment.bin>


More information about the llvm-commits mailing list