llvm-6502/include/llvm/Analysis
Victor Hernandez 2491ce0353 Fix bug where array malloc with unexpected computation of the size argument resulted in MallocHelper
identifying the malloc as a non-array malloc.  This broke GlobalOpt's optimization of stores of mallocs 
to global variables.

The fix is to classify malloc's into 3 categories:
1. non-array mallocs
2. array mallocs whose array size can be determined
3. mallocs that cannot be determined to be of type 1 or 2 and cannot be optimized

getMallocArraySize() returns NULL for category 3, and all users of this function must avoid their 
malloc optimization if this function returns NULL.

Eventually, currently unexpected codegen for computing the malloc's size argument will be supported in
isArrayMalloc() and getMallocArraySize(), extending malloc optimizations to those examples.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84199 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-15 20:14:52 +00:00
..
AliasAnalysis.h Global Aliases are not identifiable objects. 2009-08-27 17:52:56 +00:00
AliasSetTracker.h eliminate all 80-col violations that I have introduced in my recent checkins (and some others more) 2009-08-27 23:44:33 +00:00
CallGraph.h add a new CallGraphNode::replaceCallEdge method and use it from 2009-09-15 05:40:35 +00:00
CaptureTracking.h BasicAliasAnalysis and FunctionAttrs were both 2009-01-18 12:19:30 +00:00
CFGPrinter.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00
ConstantFolding.h Remove an unnnecessary LLVMContext argument in 2009-10-05 16:36:26 +00:00
ConstantsScanner.h eliminate all 80-col violations that I have introduced in my recent checkins (and some others more) 2009-08-27 23:44:33 +00:00
DebugInfo.h Enable "debug info attached to an instruction" mode. 2009-10-12 23:22:09 +00:00
DominatorInternals.h Tidy up #includes, deleting a bunch of unnecessary #includes. 2009-01-05 17:59:02 +00:00
Dominators.h Move the dominator verification code out of special code embedded within 2009-09-28 00:27:48 +00:00
FindUsedTypes.h Change Pass::print to take a raw ostream instead of std::ostream, 2009-08-23 06:03:38 +00:00
InlineCost.h Fix resetCachedCostInfo to reset all of the cost information, instead of 2009-10-13 23:36:36 +00:00
Interval.h Change Pass::print to take a raw ostream instead of std::ostream, 2009-08-23 06:03:38 +00:00
IntervalIterator.h eliminate all 80-col violations that I have introduced in my recent checkins (and some others more) 2009-08-27 23:44:33 +00:00
IntervalPartition.h Change Pass::print to take a raw ostream instead of std::ostream, 2009-08-23 06:03:38 +00:00
IVUsers.h remove a few dead insertion methods. 2009-08-24 02:39:26 +00:00
LibCallAliasAnalysis.h Public and private corrections, warned about by icc (#304). 2009-09-06 08:55:57 +00:00
LibCallSemantics.h Revert 51775. 2008-05-30 22:47:19 +00:00
LiveValues.h Add a liveness analysis pass for LLVM IR values. This computes 2009-03-19 17:29:04 +00:00
LoopDependenceAnalysis.h remove a few dead insertion methods. 2009-08-24 02:39:26 +00:00
LoopInfo.h Remove a redundant assert. 2009-09-27 17:48:37 +00:00
LoopPass.h Extract the code for inserting a loop into the loop queue into 2009-09-27 23:49:43 +00:00
MallocHelper.h Fix bug where array malloc with unexpected computation of the size argument resulted in MallocHelper 2009-10-15 20:14:52 +00:00
MemoryDependenceAnalysis.h Fix a typo in a comment. 2009-07-31 19:26:54 +00:00
Passes.h Preparation for Optimal Edge Profiling: 2009-09-01 08:48:42 +00:00
PointerTracking.h remove a few dead insertion methods. 2009-08-24 02:39:26 +00:00
PostDominators.h Add dominates and releaseMemory member functions to PostDominatorTree. 2009-09-27 17:39:12 +00:00
ProfileInfo.h Add the first functions for updating ProfileInfo. 2009-09-09 17:52:57 +00:00
ProfileInfoLoader.h Reapplied r81355 with the problems fixed. 2009-09-16 11:35:50 +00:00
ProfileInfoTypes.h OptimalEdgeProfiling: Creation of profiles. 2009-09-01 19:03:44 +00:00
ScalarEvolution.h Add the ability to track HasNSW and HasNUW on more kinds of SCEV expressions. 2009-10-09 00:10:36 +00:00
ScalarEvolutionExpander.h Various comment and whitespace cleanups. 2009-08-20 16:42:55 +00:00
ScalarEvolutionExpressions.h Add the ability to track HasNSW and HasNUW on more kinds of SCEV expressions. 2009-10-09 00:10:36 +00:00
SparsePropagation.h Lett users of sparse propagation do their own thing with phi nodes if they want 2009-09-19 18:33:36 +00:00
Trace.h eliminate the "Value" printing methods that print to a std::ostream. 2009-08-23 04:37:46 +00:00
ValueTracking.h add some comments to describe the invariants. 2009-09-08 00:06:16 +00:00
Verifier.h Don't attribute in file headers anymore. See llvmdev for the 2007-12-29 19:59:42 +00:00