llvm-6502/lib
Chris Lattner dd4b421516 Change the code to no longer compute the "type description" immediately when
the type is analyzed.  Instead, only compute it when requested (with
getDescription), and cached for reuse later.

This dramatically speeds up LLVM in general because these descriptions almost
_never_ need to be constructed.  The only time they are used is when a type is
<<'d.  Printing of modules by themselves uses other code to print symbolic
types when possible, so these descriptions are really only used for debugging.

Also, this fixes the particularly bad case when lots of types get resolved to
each other, such as during linking of large programs.  In these cases, the type
descriptions would be repeatedly recomputed and discarded even though: A. noone
reads the description before it gets resolved, and B. many many resolutions
happen at intermediate steps, causing a HUGE waste of time.

Overall, this makes the getTypeDesc function much more light-weight, and fixes
bug: Assembler/2002-07-08-HugePerformanceProblem.llx, which went from taking
1048.770u/19.150s (which is 17.5 MINUTES, on apoc), to taking 0.020u/0.000s,
which is a nice little speedup.  :)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8320 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-02 16:35:17 +00:00
..
Analysis This file is hopelessly out of date 2003-09-01 20:14:00 +00:00
Archive Merged in autoconf branch. This provides configuration via the autoconf 2003-06-30 21:59:07 +00:00
AsmParser Remove gross old hacky code that was in there for backwards compatibility 2003-09-01 16:31:28 +00:00
Bytecode Allow modules to have 'any' pointer size and endianness. Luckily, we had 2003-08-24 13:47:36 +00:00
CodeGen Don't build dead directories 2003-09-01 20:34:15 +00:00
ExecutionEngine Preselection is now integrated into the Sparc target library 2003-09-01 20:30:17 +00:00
Linker Fix bug where we considered function types equivalent even if they had differing numbers of arguments 2003-08-28 16:42:50 +00:00
Support Mangle ALL letters that we do not allow, not just a few. 2003-08-24 21:08:38 +00:00
Target OptInfo is no longer required 2003-09-01 20:41:07 +00:00
Transforms Prototype for creator function got moved 2003-09-01 20:45:33 +00:00
VMCore Change the code to no longer compute the "type description" immediately when 2003-09-02 16:35:17 +00:00
Makefile Reoptimizer has moved to reopt cvs module. 2003-08-21 20:32:04 +00:00