instcombine: Migrate math library call simplifications
authorMeador Inge <meadori@codesourcery.com>
Tue, 13 Nov 2012 04:16:17 +0000 (04:16 +0000)
committerMeador Inge <meadori@codesourcery.com>
Tue, 13 Nov 2012 04:16:17 +0000 (04:16 +0000)
commit193e035b9c02e2f81921ac89151f4b2e8fd2681a
tree16d466e006e1f5a61d4dc0bf830d989326115b3d
parentde13814a37f37e40c023bd7ec8c8cc50a69b4bae
instcombine: Migrate math library call simplifications

This patch migrates the math library call simplifications from the
simplify-libcalls pass into the instcombine library call simplifier.

I have typically migrated just one simplifier at a time, but the math
simplifiers are interdependent because:

   1. CosOpt, PowOpt, and Exp2Opt all depend on UnaryDoubleFPOpt.
   2. CosOpt, PowOpt, Exp2Opt, and UnaryDoubleFPOpt all depend on
      the option -enable-double-float-shrink.

These two factors made migrating each of these simplifiers individually
more of a pain than it would be worth.  So, I migrated them all together.

llvm-svn: 167815
17 files changed:
llvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h
llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
llvm/lib/Transforms/Scalar/SimplifyLibCalls.cpp
llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
llvm/test/Transforms/InstCombine/cos-1.ll [new file with mode: 0644]
llvm/test/Transforms/InstCombine/cos-2.ll [new file with mode: 0644]
llvm/test/Transforms/InstCombine/double-float-shrink-1.ll [moved from llvm/test/Transforms/SimplifyLibCalls/double-float-shrink.ll with 54% similarity]
llvm/test/Transforms/InstCombine/double-float-shrink-2.ll [new file with mode: 0644]
llvm/test/Transforms/InstCombine/exp2-1.ll [new file with mode: 0644]
llvm/test/Transforms/InstCombine/exp2-2.ll [new file with mode: 0644]
llvm/test/Transforms/InstCombine/pow-1.ll [new file with mode: 0644]
llvm/test/Transforms/InstCombine/pow-2.ll [new file with mode: 0644]
llvm/test/Transforms/SimplifyLibCalls/cos.ll [deleted file]
llvm/test/Transforms/SimplifyLibCalls/exp2.ll [deleted file]
llvm/test/Transforms/SimplifyLibCalls/floor.ll [deleted file]
llvm/test/Transforms/SimplifyLibCalls/pow-to-sqrt.ll [deleted file]
llvm/test/Transforms/SimplifyLibCalls/pow2.ll [deleted file]