mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 04:30:12 +00:00
887f9c5ec1
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 |
||
---|---|---|
.. | ||
AliasAnalysis.h | ||
AliasSetTracker.h | ||
BlockFrequencyImpl.h | ||
BlockFrequencyInfo.h | ||
BranchProbabilityInfo.h | ||
CallGraph.h | ||
CallGraphSCCPass.h | ||
CallPrinter.h | ||
CaptureTracking.h | ||
CFG.h | ||
CFGPrinter.h | ||
CodeMetrics.h | ||
ConstantFolding.h | ||
ConstantsScanner.h | ||
DependenceAnalysis.h | ||
DominanceFrontier.h | ||
DominatorInternals.h | ||
Dominators.h | ||
DomPrinter.h | ||
DOTGraphTraitsPass.h | ||
FindUsedTypes.h | ||
InlineCost.h | ||
InstructionSimplify.h | ||
Interval.h | ||
IntervalIterator.h | ||
IntervalPartition.h | ||
IVUsers.h | ||
LazyValueInfo.h | ||
LibCallAliasAnalysis.h | ||
LibCallSemantics.h | ||
Lint.h | ||
Loads.h | ||
LoopInfo.h | ||
LoopInfoImpl.h | ||
LoopIterator.h | ||
LoopPass.h | ||
MemoryBuiltins.h | ||
MemoryDependenceAnalysis.h | ||
Passes.h | ||
PHITransAddr.h | ||
PostDominators.h | ||
PtrUseVisitor.h | ||
RegionInfo.h | ||
RegionIterator.h | ||
RegionPass.h | ||
RegionPrinter.h | ||
ScalarEvolution.h | ||
ScalarEvolutionExpander.h | ||
ScalarEvolutionExpressions.h | ||
ScalarEvolutionNormalization.h | ||
SparsePropagation.h | ||
TargetTransformInfo.h | ||
Trace.h | ||
ValueTracking.h | ||
Verifier.h |