llvm/lib/Transforms/IPO
Chris Lattner 5b222d748a Implement more aggressive support for analyzing string length. This
generalizes the previous code to handle the case when the string is not
an immediate to the strlen call (for example, crazy stuff like 
strlen(c ? "foo" : "bart"+1) -> 3).  This implements 
gcc.c-torture/execute/builtins/strlen-2.c.  I will generalize other
cases in simplifylibcalls to use the same routine later.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50408 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-29 06:56:02 +00:00
..
ArgumentPromotion.cpp Allow argpromote to promote struct arguments with a specified number 2008-04-19 19:50:01 +00:00
ConstantMerge.cpp Don't include <map> in Pass.h, which doesn't need it. This requires 2008-03-21 23:51:57 +00:00
DeadArgumentElimination.cpp API changes for class Use size reduction, wave 1. 2008-04-06 20:25:17 +00:00
DeadTypeElimination.cpp Remove attribution from file headers, per discussion on llvmdev. 2007-12-29 20:36:04 +00:00
ExtractGV.cpp API changes for class Use size reduction, wave 1. 2008-04-06 20:25:17 +00:00
GlobalDCE.cpp Remove attribution from file headers, per discussion on llvmdev. 2007-12-29 20:36:04 +00:00
GlobalOpt.cpp When SRoA'ing a global variable, make sure the new globals get the 2008-04-26 07:40:11 +00:00
IndMemRemoval.cpp API changes for class Use size reduction, wave 1. 2008-04-06 20:25:17 +00:00
Inliner.cpp 1. Drop default inline threshold back down to 200. 2008-04-01 23:59:29 +00:00
InlineSimple.cpp Increasing the inline limit from (overly conservative) 200 to 300. Given each BB costs 20 and each instruction costs 5, 200 means a 4 BB function + 24 instructions (actually less because caller's size also contributes to it). 2008-03-24 06:37:48 +00:00
Internalize.cpp Remove attribution from file headers, per discussion on llvmdev. 2007-12-29 20:36:04 +00:00
IPConstantPropagation.cpp simplify code for propagation of constant arguments into 2008-04-23 06:16:27 +00:00
LoopExtractor.cpp Remove attribution from file headers, per discussion on llvmdev. 2007-12-29 20:36:04 +00:00
LowerSetJmp.cpp API changes for class Use size reduction, wave 1. 2008-04-06 20:25:17 +00:00
Makefile remove attribution from lib Makefiles. 2007-12-29 20:09:26 +00:00
PruneEH.cpp Remove 'unwinds to' support from mainline. This patch undoes r47802 r47989 2008-04-25 16:53:59 +00:00
RaiseAllocations.cpp API changes for class Use size reduction, wave 1. 2008-04-06 20:25:17 +00:00
SimplifyLibCalls.cpp Implement more aggressive support for analyzing string length. This 2008-04-29 06:56:02 +00:00
StripDeadPrototypes.cpp Remove attribution from file headers, per discussion on llvmdev. 2007-12-29 20:36:04 +00:00
StripSymbols.cpp Handle attribute(used) global variables that are i8. 2008-01-16 21:35:43 +00:00
StructRetPromotion.cpp API changes for class Use size reduction, wave 1. 2008-04-06 20:25:17 +00:00