Reimplement the non-local dependency data structure in terms of a sorted
authorChris Lattner <sabre@nondot.org>
Mon, 1 Dec 2008 01:15:42 +0000 (01:15 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 1 Dec 2008 01:15:42 +0000 (01:15 +0000)
commitbf145d6e2ba01f5099ccaa1b58ed3619406928a0
treed1d5cbcbb2ba93792ccbbea4eb94075477d2c462
parentb3833d1eb91af5d35abe2a239b8577644ce157b0
Reimplement the non-local dependency data structure in terms of a sorted
vector instead of a densemap.  This shrinks the memory usage of this thing
substantially (the high water mark) as well as making operations like
scanning it faster.  This speeds up memdep slightly, gvn goes from
3.9376 to 3.9118s on 403.gcc

This also splits out the statistics for the cached non-local case to
differentiate between the dirty and clean cached case.  Here's the stats
for 403.gcc:

  6153 memdep - Number of dirty cached non-local responses
169336 memdep - Number of fully cached non-local responses
162428 memdep - Number of uncached non-local responses

yay for caching :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60313 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Analysis/MemoryDependenceAnalysis.h
lib/Analysis/MemoryDependenceAnalysis.cpp
lib/Transforms/Scalar/GVN.cpp