This checkin basically amounts to a complete rewrite of the type-resolution
authorChris Lattner <sabre@nondot.org>
Fri, 3 Oct 2003 18:46:24 +0000 (18:46 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 3 Oct 2003 18:46:24 +0000 (18:46 +0000)
commit7685ac8d35a0c74f6d341f9589fdaedcd1564310
treeb31bf215cde3f8cd28024c18692f3c26ca58a73c
parent4797826e17d77e2f2aec2695ec3618ca237c463b
This checkin basically amounts to a complete rewrite of the type-resolution
machinery.  This dramatically simplifies how things works, removes irritating
little corner cases, and overall improves speed and reliability.

Highlights of this change are:

1. The exponential algorithm built into the code is now gone.  For example
   the time to disassemble one bytecode file from the mesa benchmark went
   from taking 12.5s to taking 0.16s.
2. The linker bugs should be dramatically reduced.  The one remaining bug
   has to do with constant handling, which I actually introduced in
   "union-find" checkins.
3. The code is much easier to follow, as a result of fewer special cases.
   It's probably also smaller.  yaay.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8842 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/AbstractTypeUser.h
include/llvm/DerivedTypes.h
include/llvm/SymbolTable.h
lib/VMCore/SymbolTable.cpp
lib/VMCore/Type.cpp