Implement new LibCallSimplifier class
authorMeador Inge <meadori@codesourcery.com>
Sat, 13 Oct 2012 16:45:24 +0000 (16:45 +0000)
committerMeador Inge <meadori@codesourcery.com>
Sat, 13 Oct 2012 16:45:24 +0000 (16:45 +0000)
commit5e8904576a5260cfd5b14596e338a4bb25b9817e
tree99f1f4d7a666434238a0cdc06d1e7eebe64a0f6e
parentaf8969076083396f06431971cce867ea11fb968c
Implement new LibCallSimplifier class

This patch implements the new LibCallSimplifier class as outlined in [1].
In addition to providing the new base library simplification infrastructure,
all the fortified library call simplifications were moved over to the new
infrastructure.  The rest of the library simplification optimizations will
be moved over with follow up patches.

NOTE: The original fortified library call simplifier located in the
SimplifyFortifiedLibCalls class was not removed because it is still
used by CodeGenPrepare.  This class will eventually go away too.

[1] http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-August/052283.html

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165873 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Transforms/Utils/SimplifyLibCalls.h [new file with mode: 0644]
lib/Transforms/InstCombine/InstCombine.h
lib/Transforms/InstCombine/InstCombineCalls.cpp
lib/Transforms/InstCombine/InstructionCombining.cpp
lib/Transforms/Utils/CMakeLists.txt
lib/Transforms/Utils/SimplifyLibCalls.cpp [new file with mode: 0644]