Completely rewrite support for the Value::use_* list. Now, all operations on
authorChris Lattner <sabre@nondot.org>
Thu, 16 Oct 2003 16:53:07 +0000 (16:53 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 16 Oct 2003 16:53:07 +0000 (16:53 +0000)
commitc3cc71abbcac9a5d172e64002e2262c8f1a41967
tree6d3541b73b92cdd464067268ef1e1974e31e1c97
parent202884fd9b575396f7ca220755cc4e3dac9b5a97
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@9160 91177308-0d34-0410-b5e6-96231b3b80d8
lib/VMCore/Value.cpp