LLVM backend for 6502
Go to file
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
autoconf Added code to check for python and qmtest. 2003-08-25 16:49:54 +00:00
docs Document the llvm.unwind intrinsic. 2003-08-28 22:12:25 +00:00
examples/ModuleMaker Initial checkin 2003-08-21 22:33:59 +00:00
include The description is no longer stored directly in the type. 2003-09-02 16:28:03 +00:00
lib Change the code to no longer compute the "type description" immediately when 2003-09-02 16:35:17 +00:00
projects Initial checkin 2003-08-21 22:33:59 +00:00
runtime Urg, forgot to add a file header somehow. 2003-08-30 23:31:08 +00:00
support Added an option to TableGen that allows users to specify a directory in which 2003-08-27 13:41:57 +00:00
test New testcase 2003-08-31 21:05:39 +00:00
tools #include is unnecessary 2003-09-01 20:45:46 +00:00
utils Added an option to TableGen that allows users to specify a directory in which 2003-08-27 13:41:57 +00:00
.cvsignore Ok, try #2, this time I'll not be stupid 2003-08-03 18:33:24 +00:00
configure Added code to check for python and qmtest. 2003-08-25 16:49:54 +00:00
LICENSE.TXT Add prerelease license to cvs 2003-06-04 19:46:36 +00:00
Makefile build the new runtime directory 2003-08-15 04:53:45 +00:00
Makefile.common Slightly simplify make logic 2003-08-29 14:07:02 +00:00
Makefile.config.in Updated to use files within the autoconf subdirectory. 2003-07-22 19:17:35 +00:00
Makefile.rules Slightly simplify make logic 2003-08-29 14:07:02 +00:00