llvm-project/llvm/lib/Transforms/IPO
Benjamin Kramer 8bcc971174 Make MemoryBuiltins aware of TargetLibraryInfo.
This disables malloc-specific optimization when -fno-builtin (or -ffreestanding)
is specified. This has been a problem for a long time but became more severe
with the recent memory builtin improvements.

Since the memory builtin functions are used everywhere, this required passing
TLI in many places. This means that functions that now have an optional TLI
argument, like RecursivelyDeleteTriviallyDeadFunctions, won't remove dead
mallocs anymore if the TLI argument is missing. I've updated most passes to do
the right thing.

Fixes PR13694 and probably others.

llvm-svn: 162841
2012-08-29 15:32:21 +00:00
..
ArgumentPromotion.cpp Replace some explicit compare loops with std::equal. 2012-07-19 10:46:05 +00:00
CMakeLists.txt llvm/lib: [CMake] Add explicit dependency to intrinsics_gen. 2012-06-24 13:32:01 +00:00
ConstantMerge.cpp Re-fix the issue Bill fixed in r147899 in a slightly different way, which doesn't abuse the semantics of linker_private. We don't really want to merge any string constant with a weak_odr global. 2012-01-11 22:06:46 +00:00
DeadArgumentElimination.cpp switch AttrListPtr::get to take an ArrayRef, simplifying a lot of clients. 2012-05-28 01:47:44 +00:00
ExtractGV.cpp Remove tabs. 2012-07-19 00:11:40 +00:00
FunctionAttrs.cpp SCCCaptured is trivially false on entry to this loop and not modified inside it. 2012-01-05 22:21:45 +00:00
GlobalDCE.cpp Implement the isSafeToDiscardIfUnused predicate and use it in globalopt and 2012-06-14 22:48:13 +00:00
GlobalOpt.cpp Make MemoryBuiltins aware of TargetLibraryInfo. 2012-08-29 15:32:21 +00:00
IPConstantPropagation.cpp land David Blaikie's patch to de-constify Type, with a few tweaks. 2011-07-18 04:54:35 +00:00
IPO.cpp C API functions must be able to see their extern "C" definitions, or it will be impossible to call them from C. 2011-08-19 01:36:54 +00:00
InlineAlways.cpp Fix a pretty scary bug I introduced into the always inliner with 2012-04-01 10:21:05 +00:00
InlineSimple.cpp Remove a bunch of empty, dead, and no-op methods from all of these 2012-03-31 12:48:08 +00:00
Inliner.cpp Make MemoryBuiltins aware of TargetLibraryInfo. 2012-08-29 15:32:21 +00:00
Internalize.cpp Add a Fixme. 2012-04-16 04:23:52 +00:00
LLVMBuild.txt Add a basic-block autovectorization pass. 2012-02-01 03:51:43 +00:00
LoopExtractor.cpp Move the CodeExtractor utility to a dedicated header file / source file, 2012-05-04 10:18:49 +00:00
Makefile
MergeFunctions.cpp Remove tabs. 2012-07-19 00:11:40 +00:00
PartialInlining.cpp Move the CodeExtractor utility to a dedicated header file / source file, 2012-05-04 10:18:49 +00:00
PassManagerBuilder.cpp By default, use Early-CSE instead of GVN for vectorization cleanup. 2012-04-13 17:15:33 +00:00
PruneEH.cpp [unwind removal] We no longer have 'unwind' instructions being generated, so 2012-02-06 21:16:41 +00:00
StripDeadPrototypes.cpp Get rid of static constructors for pass registration. Instead, every pass exposes an initializeMyPassFunction(), which 2010-10-19 17:21:58 +00:00
StripSymbols.cpp Move the "findUsedStructTypes" functionality outside of the Module class. 2012-08-03 00:30:35 +00:00