Commit Graph

614 Commits

Author SHA1 Message Date
Chris Lattner
7ba77f2a63 Further simplifications
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8321 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-02 16:46:41 +00:00
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
Brian Gaeke
714a3a6cb5 Remove assertion which is never reached.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8318 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-02 06:45:34 +00:00
Chris Lattner
0ae8e87e53 Implement new method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8238 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-31 00:19:28 +00:00
Chris Lattner
287d11191f Fix bug: Linker/2003-08-28-TypeResolvesGlobal3.ll
Use new replaceAllUsesWith stuff in a way that works even though types have not yet been propagated


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8210 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-29 05:37:22 +00:00
Chris Lattner
23f3a49aec Implement "unsafe" replaceAllUsesWWith stuff for use during type resolution.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8209 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-29 05:36:46 +00:00
Chris Lattner
ad217a4ca2 Fix bug: Linker/2003-08-28-TypeResolvesGlobal2.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8206 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-29 05:11:34 +00:00
Chris Lattner
2bc065b63a Refactor code to make it useful outside of Constants.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8205 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-29 05:09:37 +00:00
Chris Lattner
652f032ce9 Fix bug: Linker/2003-08-28-TypeResolvesGlobal.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8202 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-29 04:49:54 +00:00
Chris Lattner
841e00b962 Fix bug where we considered function types equivalent even if they had differing numbers of arguments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8178 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-28 16:42:50 +00:00
Chris Lattner
bfa964699f As it turns out, things will be simpler than I first expected. We no longer
need any exception handling intrinsics beyond llvm.unwind. (yaay)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8145 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-25 22:35:01 +00:00
Chris Lattner
aa8a847c62 Mangle ALL letters that we do not allow, not just a few.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8140 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-24 21:08:38 +00:00
Chris Lattner
77c5f733ac Fix bug: Linker/2003-08-23-GlobalVarLinking.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8130 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-24 19:30:20 +00:00
Chris Lattner
873c5e7859 Implement: Linker/2003-08-24-InheritPtrSize.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8129 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-24 19:26:42 +00:00
Chris Lattner
eb5d3a1526 Support new 'any' support for pointer size and endianness
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8119 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-24 13:48:48 +00:00
Chris Lattner
101d40060c rethrow is really the language independent primitive here. "throw" can be written
in terms of it and llvm.exc.setcurrent.

Rework the intrinsics.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8110 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-24 12:24:08 +00:00
Chris Lattner
7f736c9351 Fix copy-and-paste-o
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8104 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-24 06:57:53 +00:00
Chris Lattner
9dd7d1c8eb Initial support for recognizing LLVM exception handling intrinsics
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8102 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-24 05:30:29 +00:00
Chris Lattner
4bd4aa5e3c Allow specifying the name for the newly split basic block
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8097 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-24 03:41:39 +00:00
Chris Lattner
131d19f9c6 Rename SwitchInst::dest_push_back -> addCase
Add new removeCase method


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8088 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-23 23:14:37 +00:00
Chris Lattner
f44c6051e0 Do not consider any types that exist in the global symbol table!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8084 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-23 21:32:24 +00:00
Chris Lattner
e3092c94ad Fix bug: Linker/2003-08-23-RecursiveOpaqueTypeResolve.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8083 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-23 21:25:54 +00:00
Chris Lattner
fcd0234de6 Implement Linker/2003-08-23-GlobalVarLinking.ll, which should fix 176.gcc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8080 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-23 20:31:10 +00:00
Chris Lattner
9732be769e Fix typeo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8059 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-22 20:16:48 +00:00
Chris Lattner
43f4ba8c7d The process of linking types can cause their addresses to become invalid. For this reason, we must use TypeHandles!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8057 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-22 19:12:55 +00:00
Chris Lattner
e76c57ad46 Implement Linker/2003-08-20-OpaqueTypeResolve.ll
Hopefully this will fix the 176.gcc spec test as well.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8051 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-22 06:07:12 +00:00
Chris Lattner
24b8a5d6e7 If an "LLVM name" has wierd characters in it, print it out in double quotes instead of prefixing it with %
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8049 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-22 05:40:38 +00:00
Misha Brukman
ef6a6a69ff The word dependent' has no a'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8030 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-21 22:14:26 +00:00
Chris Lattner
0425a87a62 Implement Assembler/2003-08-21-ConstantExprCast-Fold.llx
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8015 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-21 19:45:55 +00:00
Chris Lattner
4b517a4654 Implement testcase: Assembler/2003-08-20-ConstantExprGEP-Fold.llx
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7983 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-20 16:11:27 +00:00
Chris Lattner
24f83a15dd Do not even attempt to compute dominator information for unreachable blocks
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7963 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-18 22:11:16 +00:00
Chris Lattner
8164d6535a Fix linking bug in xboard
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7952 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-18 16:54:48 +00:00
Chris Lattner
8169cf810c Add intrinsics for the llvm.sig(set|long)jmp functions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7949 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-18 15:41:24 +00:00
Misha Brukman
5560c9d49c Spell `necessary' correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7944 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-18 14:43:39 +00:00
Brian Gaeke
1d3fa21cdd Add new method to FunctionPassManager to add ImmutablePasses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7838 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-14 06:07:57 +00:00
Chris Lattner
01189952bb Dramatically simplify how -time-passes works.
This also enables -time-passes for FunctionPassManagers, which allows it to
be used for the JIT


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7834 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-14 05:20:28 +00:00
Chris Lattner
3ccd0fd756 Implement constant folding of casts from boolean constants to other values
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7812 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-13 15:52:25 +00:00
Brian Gaeke
8ab1ef265a Add FunctionPassManager - it's like a PassManager, but it only deals in
FunctionPasses.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7778 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-12 17:22:39 +00:00
Chris Lattner
2b3860faeb Add support to the mangler for targets which require _'s on global symbols
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7741 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-11 19:34:29 +00:00
Chris Lattner
c232818432 Add a bunch of new Alpha Intrinsics for Rahul Joshi
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7646 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-06 20:08:25 +00:00
Chris Lattner
7a012299ce Implement TODO: print out short form of Invoke if possible
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7595 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-05 15:34:45 +00:00
Tanya Lattner
ec127bb352 *** empty log message ***
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7447 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-31 05:06:09 +00:00
Tanya Lattner
741bb0019d Added function to determine if an Instruction may trap.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7442 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-31 04:05:50 +00:00
Chris Lattner
61972242f3 Fix a bug that brian reported
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7428 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-30 19:04:37 +00:00
Chris Lattner
2418b117ba Add support for Alpha intrinsics, contributed by Rahul Joshi
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7373 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-28 21:20:57 +00:00
Brian Gaeke
6b902dcd5d Include llvm/Support/Mangler.h first. Don't include <iostream>, <set>,
<string>, or llvm/Value.h.  Move up the inclusion of llvm/Support/Mangler.h.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7321 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-25 20:21:20 +00:00
Brian Gaeke
4166445b7c Cleanups:
Mangler.cpp: Constify parameter to makeNameProper, and use const_iterator.
 Make Count an unsigned int, and use utostr().
 Don't name parameters things that start with underscore.
Mangler.h: All of the above, and also: Add Emacs mode-line.  Include <set>.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7301 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-24 21:37:57 +00:00
Brian Gaeke
b198ca304b Factor out name-mangling from X86/Printer, which is derived from CWriter,
into this new support class.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7300 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-24 20:20:58 +00:00
Chris Lattner
b6ede8aaa0 Make Module::getNamedFunction prefer non-external functions if there is more than
one function of the same name


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7274 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23 20:21:30 +00:00
Chris Lattner
30780ccf15 Add support for ~ operator on constants
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7258 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23 17:21:17 +00:00