Completely rewrite support for the Value::use_* list. Now, all operations on
authorChris Lattner <sabre@nondot.org>
Thu, 16 Oct 2003 16:53:04 +0000 (16:53 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 16 Oct 2003 16:53:04 +0000 (16:53 +0000)
commit202884fd9b575396f7ca220755cc4e3dac9b5a97
tree284fbf032bb597d3859e5d51dd425666382f1b11
parentf07c833b4b3dbe2c8b2ca74a530e139e1fe55861
Completely rewrite support for the Value::use_* list.  Now, all operations on
this list (except use_size()) are constant time.  Before the killUse method
(used whenever something stopped using a value) was linear time, and thus
very very slow for large programs.

This speeds GCCAS up _substantially_ on large programs: almost 2x for 176.gcc:

176.gcc:     77.07s -> 37.38s
177.mesa:     7.59s ->  5.57s
252.eon:     21.02s -> 19.52s (*)
253.perlbmk: 11.40s -> 13.05s
254.gap:      7.25s -> 7.42s

252.eon would speed up a whole lot more, but optimization time is being
dominated by the inlining pass, which needs to be fixed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9159 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Use.h [new file with mode: 0644]
include/llvm/Value.h