llvm-6502/include/llvm/Analysis
Wan Xiaofei 887f9c5ec1 Quick look-up for block in loop.
This patch implements quick look-up for block in loop by maintaining a hash set for blocks.
It improves the efficiency of loop analysis a lot, the biggest improvement could be 5-6%(458.sjeng).
Below are the compilation time for our benchmark in llc before & after the patch.

Benchmark	llc - trunk		llc - patched	
401.bzip2	0.339081	100.00%	0.329657	102.86%
403.gcc		19.853966	100.00%	19.605466	101.27%
429.mcf		0.049823	100.00%	0.048451	102.83%
433.milc	0.514898	100.00%	0.510217	100.92%
444.namd	1.109328	100.00%	1.103481	100.53%
445.gobmk	4.988028	100.00%	4.929114	101.20%
456.hmmer	0.843871	100.00%	0.825865	102.18%
458.sjeng	0.754238	100.00%	0.714095	105.62%
464.h264ref	2.9668		100.00%	2.90612		102.09%
471.omnetpp	4.556533	100.00%	4.511886	100.99%
bitmnp01	0.038168	100.00%	0.0357		106.91%
idctrn01	0.037745	100.00%	0.037332	101.11%
libquake2	3.78689		100.00%	3.76209		100.66%
libquake_	2.251525	100.00%	2.234104	100.78%
linpack		0.033159	100.00%	0.032788	101.13%
matrix01	0.045319	100.00%	0.043497	104.19%
nbench		0.333161	100.00%	0.329799	101.02%
tblook01	0.017863	100.00%	0.017666	101.12%
ttsprk01	0.054337	100.00%	0.053057	102.41%

Reviewer	: Andrew Trick <atrick@apple.com>, Hal Finkel <hfinkel@anl.gov>
Approver	: Andrew Trick <atrick@apple.com>
Test		: Pass make check-all & llvm test-suite


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193460 91177308-0d34-0410-b5e6-96231b3b80d8
2013-10-26 03:08:02 +00:00
..
AliasAnalysis.h
AliasSetTracker.h
BlockFrequencyImpl.h Add some constantness. 2013-08-20 23:04:15 +00:00
BlockFrequencyInfo.h
BranchProbabilityInfo.h
CallGraph.h Call destroy from ~BasicCallGraph. 2013-10-25 15:01:34 +00:00
CallGraphSCCPass.h
CallPrinter.h
CaptureTracking.h
CFG.h Add some constantness. 2013-08-20 23:04:15 +00:00
CFGPrinter.h
CodeMetrics.h
ConstantFolding.h
ConstantsScanner.h
DependenceAnalysis.h
DominanceFrontier.h
DominatorInternals.h
Dominators.h Add function DominatorTree::getDescendants(). 2013-09-19 17:18:35 +00:00
DomPrinter.h
DOTGraphTraitsPass.h
FindUsedTypes.h
InlineCost.h
InstructionSimplify.h Fix missing -*- C++ -*-s 2013-08-06 00:16:21 +00:00
Interval.h
IntervalIterator.h
IntervalPartition.h
IVUsers.h
LazyValueInfo.h
LibCallAliasAnalysis.h
LibCallSemantics.h
Lint.h
Loads.h
LoopInfo.h Quick look-up for block in loop. 2013-10-26 03:08:02 +00:00
LoopInfoImpl.h Quick look-up for block in loop. 2013-10-26 03:08:02 +00:00
LoopIterator.h
LoopPass.h
MemoryBuiltins.h fix PR17635: false positive with packed structures 2013-10-24 09:17:24 +00:00
MemoryDependenceAnalysis.h
Passes.h Remove the very substantial, largely unmaintained legacy PGO 2013-10-02 15:42:23 +00:00
PHITransAddr.h
PostDominators.h
PtrUseVisitor.h
RegionInfo.h
RegionIterator.h
RegionPass.h
RegionPrinter.h
ScalarEvolution.h Remove unused SCEV functions 2013-10-21 18:08:09 +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
ScalarEvolutionNormalization.h
SparsePropagation.h
TargetTransformInfo.h Speling fixes. 2013-10-22 15:18:03 +00:00
Trace.h
ValueTracking.h Teach MemoryBuiltins and InstructionSimplify that operator new never returns NULL. 2013-09-24 16:37:51 +00:00
Verifier.h