llvm/lib
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
..
Analysis Quick look-up for block in loop. 2013-10-26 03:08:02 +00:00
AsmParser Use address-taken to disambiguate global variable and indirect memops. 2013-10-23 17:28:19 +00:00
Bitcode Use address-taken to disambiguate global variable and indirect memops. 2013-10-23 17:28:19 +00:00
CodeGen DIEHash: Summary hashing of member functions 2013-10-25 20:04:25 +00:00
DebugInfo Correct log message typo: ended ad -> ended at 2013-10-18 13:01:33 +00:00
ExecutionEngine The FIXME was indeed fixed in the linker, comment removed. 2013-10-25 12:01:53 +00:00
IR llvm-cov dump to dbgs() instead of outs(). 2013-10-25 02:22:24 +00:00
IRReader
Linker Add a 'deleteModule' method to the Linker class. 2013-10-16 08:59:57 +00:00
LTO Add a 'deleteModule' method to the Linker class. 2013-10-16 08:59:57 +00:00
MC ARM: allow .thumb_func to be separated from symbol definition 2013-10-25 12:49:50 +00:00
Object Support for microMIPS relocations 1. 2013-10-23 16:14:44 +00:00
Option Fix another mistake in r190442. 2013-09-10 23:22:56 +00:00
Support Change MemoryBuffer::getFile to take a Twine. 2013-10-25 19:06:52 +00:00
TableGen Add an error check for a typo I accidentally made in a td file that caused an assert to fire. 2013-08-20 04:22:09 +00:00
Target [X86][AVX512] Add patterns that match the AVX512 floating point register vbroadcast intrinsics. 2013-10-25 18:04:12 +00:00
Transforms Quick look-up for block in loop. 2013-10-26 03:08:02 +00:00
CMakeLists.txt Move LTO support library to a component, allowing it to be tested 2013-09-24 23:52:22 +00:00
LLVMBuild.txt Move LTO support library to a component, allowing it to be tested 2013-09-24 23:52:22 +00:00
Makefile Move LTO support library to a component, allowing it to be tested 2013-09-24 23:52:22 +00:00