llvm-6502/lib/VMCore
Chris Lattner 1afcace3a3 Land the long talked about "type system rewrite" patch. This
patch brings numerous advantages to LLVM.  One way to look at it
is through diffstat:
 109 files changed, 3005 insertions(+), 5906 deletions(-)

Removing almost 3K lines of code is a good thing.  Other advantages
include:

1. Value::getType() is a simple load that can be CSE'd, not a mutating
   union-find operation.
2. Types a uniqued and never move once created, defining away PATypeHolder.
3. Structs can be "named" now, and their name is part of the identity that
   uniques them.  This means that the compiler doesn't merge them structurally
   which makes the IR much less confusing.
4. Now that there is no way to get a cycle in a type graph without a named
   struct type, "upreferences" go away.
5. Type refinement is completely gone, which should make LTO much MUCH faster
   in some common cases with C++ code.
6. Types are now generally immutable, so we can use "Type *" instead 
   "const Type *" everywhere.

Downsides of this patch are that it removes some functions from the C API,
so people using those will have to upgrade to (not yet added) new API.  
"LLVM 3.0" is the right time to do this.

There are still some cleanups pending after this, this patch is large enough
as-is.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134829 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-09 17:41:24 +00:00
..
AsmWriter.cpp Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
Attributes.cpp Add a new function attribute, nonlazybind, which inhibits lazy-loading 2011-06-15 20:36:13 +00:00
AutoUpgrade.cpp rework the remaining autoupgrade logic to use a StringRef instead of creating a 2011-06-18 18:56:39 +00:00
BasicBlock.cpp Add r134057 back, but splice the predecessor after the successors phi 2011-06-30 20:14:24 +00:00
CMakeLists.txt Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
ConstantFold.cpp Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
ConstantFold.h Remove casts between Value** and Constant**, which won't work if a 2011-01-14 08:07:43 +00:00
Constants.cpp Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
ConstantsContext.h Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
Core.cpp Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
DebugInfoProbe.cpp Revert unintentional check-in. 2011-06-24 20:48:14 +00:00
DebugLoc.cpp PR9214: Convert Metadata API to use ArrayRef. 2011-04-21 19:59:31 +00:00
Dominators.cpp Spruce up the error output. 2011-03-29 04:28:26 +00:00
Function.cpp Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
Globals.cpp Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
GVMaterializer.cpp Kill ModuleProvider and ghost linkage by inverting the relationship between 2010-01-27 20:34:15 +00:00
InlineAsm.cpp Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
Instruction.cpp AttrListPtr has an overloaded operator== which does this for us, we should use 2011-01-26 09:23:19 +00:00
Instructions.cpp Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
IntrinsicInst.cpp warmup ritual: use high-level argument accessors 2010-06-22 19:46:37 +00:00
IRBuilder.cpp Add CreateLifetimeStart and CreateLifetimeEnd to the IRBuilder, with plans to 2011-05-21 23:14:36 +00:00
LeakDetector.cpp Merge System into Support. 2010-11-29 18:16:10 +00:00
LeaksContext.h Fix a bunch of namespace polution. 2010-04-15 17:08:50 +00:00
LLVMContext.cpp Introduce "expect" intrinsic instructions. 2011-07-06 18:22:43 +00:00
LLVMContextImpl.cpp Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
LLVMContextImpl.h Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
Makefile Enable RTTI again. While this works fine for LLVM, it creates an ABI 2010-04-14 05:51:59 +00:00
Metadata.cpp Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
Module.cpp Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
Pass.cpp Another step towards getting rid of static ctors for pass registration: have INITIALIZE_PASS AND INITIALIZE_AG_PASS 2010-10-05 22:58:16 +00:00
PassManager.cpp Basic PassManager diagnostics. 2011-06-03 00:48:58 +00:00
PassRegistry.cpp Fix a ton of comment typos found by codespell. Patch by 2011-04-15 05:18:47 +00:00
PrintModulePass.cpp Now with fewer extraneous semicolons! 2010-10-07 22:25:06 +00:00
SymbolTableListTraitsImpl.h
Type.cpp Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
Use.cpp Remove the AugmentedUse struct. 2011-06-20 14:12:33 +00:00
User.cpp Reinstate r133513 (reverted in r133700) with an additional fix for a 2011-06-23 09:09:15 +00:00
Value.cpp Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
ValueSymbolTable.cpp eliminate the Type::getDescription() method, using "<<" instead. This 2011-06-18 21:18:23 +00:00
ValueTypes.cpp Fix some trailing issues from my introduction of MVT::untyped and its use for REGISTER_SEQUENCE. 2011-06-21 22:54:23 +00:00
Verifier.cpp Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00