llvm-mirror/include/llvm/Analysis
Diego Novillo c6a9e90687 Fix dominator descendants for unreachable blocks.
When a block is unreachable, asking its dom tree descendants should
return the empty set. However, the computation of the descendants
was causing a segmentation fault because the dom tree node we get
from the basic block is initially NULL.

Fixed by adding a test for a valid dom tree node before we iterate.

The patch also adds some unit tests to the existing dom tree tests.

llvm-svn: 196099
2013-12-02 14:08:27 +00:00
..
AliasAnalysis.h Make BasicAliasAnalysis recognize the fact a noalias argument cannot alias another argument, even if the other argument is not itself marked noalias. 2013-05-28 08:17:48 +00:00
AliasSetTracker.h Remove unneeded #includes. 2013-03-18 23:33:44 +00:00
BlockFrequencyImpl.h Add some constantness. 2013-08-20 23:04:15 +00:00
BlockFrequencyInfo.h Added BlockFrequencyInfo::view for displaying the block frequency propagation graph via graphviz. 2013-11-14 02:27:46 +00:00
BranchProbabilityInfo.h Add a new function attribute 'cold' to functions. 2013-05-24 12:26:52 +00:00
CallGraph.h [PM] [cleanup] Rearrange the public and private sections of this class 2013-12-02 12:35:56 +00:00
CallGraphSCCPass.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
CallPrinter.h Added -view-callgraph module pass. 2013-01-11 17:28:14 +00:00
CaptureTracking.h Remove unneeded #includes. Use forward declarations instead. 2013-03-10 00:34:01 +00:00
CFG.h Add some constantness. 2013-08-20 23:04:15 +00:00
CFGPrinter.h GraphViz CFGPrinter: wrap long lines. 2013-11-12 18:06:09 +00:00
CodeMetrics.h Switch CodeMetrics itself over to use TTI to determine if an instruction 2013-01-21 13:04:33 +00:00
ConstantFolding.h Add missing -*- C++ -*- to headers 2013-05-17 21:43:39 +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
DependenceAnalysis.h delinearization of arrays 2013-11-12 22:47:20 +00:00
DominanceFrontier.h Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:50:00 +00:00
DominatorInternals.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
Dominators.h Fix dominator descendants for unreachable blocks. 2013-12-02 14:08:27 +00:00
DomPrinter.h add function passes for printing various dominator datastructures 2009-10-18 04:10:40 +00:00
DOTGraphTraitsPass.h [PM] Add a really simple trait to the DOTGraphTraitsPass class templates 2013-11-26 03:43:52 +00:00
FindUsedTypes.h land David Blaikie's patch to de-constify Type, with a few tweaks. 2011-07-18 04:54:35 +00:00
InlineCost.h Remove unneeded #include. 2013-06-06 23:34:11 +00:00
InstructionSimplify.h Fix missing -*- C++ -*-s 2013-08-06 00:16:21 +00:00
Interval.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
IntervalIterator.h Fix a few typos in comments. 2013-03-05 22:05:16 +00:00
IntervalPartition.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
IVUsers.h Remove duplicated forward declaration. 2013-03-06 00:04:32 +00:00
LazyValueInfo.h Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
LibCallAliasAnalysis.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
LibCallSemantics.h Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164767 2012-09-27 10:14:43 +00:00
Lint.h Remove unused STL header includes. 2011-04-23 19:53:52 +00:00
Loads.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
LoopInfo.h [block-freq] Add a method to loop info for returning all loop latches for a specific loop. 2013-11-22 05:00:48 +00:00
LoopInfoImpl.h Quick look-up for block in loop. 2013-10-26 03:08:02 +00:00
LoopIterator.h Remove unneeded #includes. 2013-02-09 13:29:10 +00:00
LoopPass.h Move the old pass manager infrastructure into a legacy namespace and 2013-11-09 12:26:54 +00:00
MemoryBuiltins.h fix PR17635: false positive with packed structures 2013-10-24 09:17:24 +00:00
MemoryDependenceAnalysis.h Memory Dependence Analysis (not mem-dep test) take advantage of "invariant.load" metadata. 2013-03-06 17:48:48 +00:00
Passes.h delinearization of arrays 2013-11-12 22:47:20 +00:00
PHITransAddr.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
PostDominators.h Add PostDominatorTree::getDescendants. 2013-11-26 20:11:12 +00:00
PtrUseVisitor.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
RegionInfo.h RegionInfo: Add helpers to replace entry/exit recursively 2013-04-10 06:54:49 +00:00
RegionIterator.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
RegionPass.h Move the old pass manager infrastructure into a legacy namespace and 2013-11-09 12:26:54 +00:00
RegionPrinter.h Add new RegionInfo pass. 2010-07-22 07:46:31 +00:00
ScalarEvolution.h ScalarEvolution: Warn if the result of setFlags/clearFlags is unused. 2013-11-16 16:25:47 +00:00
ScalarEvolutionExpander.h Fix SCEVExpander: don't try to expand quadratic recurrences outside a loop. 2013-10-25 21:35:56 +00:00
ScalarEvolutionExpressions.h delinearization of arrays 2013-11-12 22:47:20 +00:00
ScalarEvolutionNormalization.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
SparsePropagation.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
TargetTransformInfo.h Speling fixes. 2013-10-22 15:18:03 +00:00
Trace.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
ValueTracking.h Teach MemoryBuiltins and InstructionSimplify that operator new never returns NULL. 2013-09-24 16:37:51 +00:00
Verifier.h Fix a comment. 2010-04-08 17:41:04 +00:00