llvm-6502/include/llvm
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
..
ADT Undefine NetBSD, it may have been defined by an earlier include of 2013-09-25 17:49:57 +00:00
Analysis Quick look-up for block in loop. 2013-10-26 03:08:02 +00:00
Assembly
Bitcode
CodeGen LegalizeDAG: allow libcalls for max/min atomic operations 2013-10-25 09:30:20 +00:00
Config Revert "Revert "Windows: Add support for unicode command lines"" 2013-10-07 01:00:07 +00:00
DebugInfo [DebugInfo] Remove unneeded struct member and hide struct definition. No functionality change. 2013-10-18 07:13:32 +00:00
ExecutionEngine Optimizing MCJIT module state tracking 2013-10-24 00:19:14 +00:00
IR AVX-512: added VCVTPH2PS, VCVTPS2PH with intrinsics 2013-10-24 07:16:35 +00:00
IRReader
LTO Optimize linkonce_odr unnamed_addr functions during LTO. 2013-10-03 18:29:09 +00:00
MC ARM: allow .thumb_func to be separated from symbol definition 2013-10-25 12:49:50 +00:00
Object Add missing #include's to cctype when using isdigit/alpha/etc. 2013-10-12 00:55:57 +00:00
Option
Support Change MemoryBuffer::getFile to take a Twine. 2013-10-25 19:06:52 +00:00
TableGen Speling fixes. 2013-10-22 15:18:03 +00:00
Target SelectionDAG: Pass along the original argument/element type in ISD::InputArg 2013-10-23 00:44:24 +00:00
Transforms Optimize more linkonce_odr values during LTO. 2013-10-21 17:14:55 +00:00
AutoUpgrade.h AutoUpgrade: upgrade from scalar TBAA format to struct-path aware TBAA format. 2013-09-28 00:22:27 +00:00
CMakeLists.txt
DebugInfo.h Reformat. 2013-10-15 21:22:12 +00:00
DIBuilder.h fix two typos. 2013-10-21 23:55:19 +00:00
GVMaterializer.h
InitializePasses.h Remove the now unused strong phi elimination pass. 2013-10-14 16:39:04 +00:00
InstVisitor.h
LinkAllIR.h
LinkAllPasses.h Remove the very substantial, largely unmaintained legacy PGO 2013-10-02 15:42:23 +00:00
Linker.h Add a 'deleteModule' method to the Linker class. 2013-10-16 08:59:57 +00:00
Pass.h
PassAnalysisSupport.h
PassManager.h Revert "Encapsulate PassManager debug flags to avoid static init and cxa_exit." 2013-09-19 06:02:43 +00:00
PassManagers.h
PassRegistry.h
PassSupport.h