llvm-mirror/test/Transforms
Chris Lattner a106725fc5 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.

llvm-svn: 134829
2011-07-09 17:41:24 +00:00
..
ADCE stop accepting begin/end around function bodies in the .ll parser, this isn't pascal anymore. 2011-06-17 06:42:57 +00:00
ArgumentPromotion fix PR8932, a case where arg promotion could infinitely promote. 2011-01-16 08:09:24 +00:00
BlockPlacement Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
BranchFolding Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
CodeExtractor manually upgrade a bunch of tests to modern syntax, and remove some that 2011-06-17 03:14:27 +00:00
CodeGenPrepare Roll r127459 back in: 2011-03-11 21:52:04 +00:00
ConstantMerge Don't merge two constants if we care about the address of both. 2011-01-16 17:05:09 +00:00
ConstProp Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
CorrelatedValuePropagation Test for lazy value info's ability to prove the absense of NULLs in pointers. 2011-01-16 21:57:20 +00:00
DeadArgElim Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
DeadStoreElimination rip out a ton of intrinsic modernization logic from AutoUpgrade.cpp, which is 2011-06-18 06:05:24 +00:00
EarlyCSE Duncan deftly points out that readnone functions aren't 2011-01-03 23:38:13 +00:00
FunctionAttrs rip out a ton of intrinsic modernization logic from AutoUpgrade.cpp, which is 2011-06-18 06:05:24 +00:00
GlobalDCE Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
GlobalOpt Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
GVN Added test cases for GVN signed intrinsics recognition, r134777. 2011-07-09 00:36:54 +00:00
IndVarSimplify indvars -disable-iv-rewrite: Added SimplifyCongruentIVs. 2011-07-06 20:50:43 +00:00
Inline rip out a ton of intrinsic modernization logic from AutoUpgrade.cpp, which is 2011-06-18 06:05:24 +00:00
InstCombine Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
InstSimplify Improve constant folding of undef for cmp and select operators. 2011-07-01 01:03:43 +00:00
Internalize Add test for r127138. 2011-03-07 21:28:14 +00:00
IPConstantProp remove parser support for the obsolete "multiple return values" syntax, which 2011-06-17 06:49:41 +00:00
JumpThreading remove asmparser support for the old getresult instruction, which has been subsumed by extractvalue. 2011-06-17 06:57:15 +00:00
LCSSA Do not add PHIs with no users when creating LCSSA form. Patch by Andrew Clinton. 2011-03-15 07:41:25 +00:00
LICM LICM: Do not loose alignment on promotion 2011-07-06 19:19:55 +00:00
LoopDeletion Add a reduced test case for the buildbot failure (clang self-hosted 2011-06-21 08:33:49 +00:00
LoopIdiom Fix PR9815: I was trying to get out of "generating code and then 2011-05-22 17:39:56 +00:00
LoopRotate remove asmparser support for the old getresult instruction, which has been subsumed by extractvalue. 2011-06-17 06:57:15 +00:00
LoopSimplify manually upgrade a bunch of tests to modern syntax, and remove some that 2011-06-17 03:14:27 +00:00
LoopStrengthReduce When forming an ICmpZero LSRUse, normalize the non-IV operand 2011-05-18 21:02:18 +00:00
LoopUnroll add a testcase for r125827 2011-02-18 05:05:01 +00:00
LoopUnswitch Bail on unswitching a switch statement for a case with a critical edge. We name 2011-06-03 06:27:15 +00:00
LowerAtomic Add an atomic lowering pass 2010-08-03 16:19:16 +00:00
LowerExpectIntrinsic Introduce "expect" intrinsic instructions. 2011-07-06 18:22:43 +00:00
LowerInvoke Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
LowerSetJmp Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
LowerSwitch Change tests from "opt %s" to "opt < %s" so that opt doesn't see the 2009-09-11 18:01:28 +00:00
Mem2Reg Add test for r133251. 2011-06-18 07:23:25 +00:00
MemCpyOpt Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
MergeFunc When removing a function from the function set and adding it to deferred, we 2011-02-09 06:32:02 +00:00
ObjCARC Fix ARCOpt to insert releases on both successors of an invoke rather 2011-06-16 20:57:14 +00:00
PhaseOrdering This directory was missing the dg.exp to cause the tests to run. Some time since 2011-06-06 20:23:00 +00:00
PruneEH manually upgrade a bunch of tests to modern syntax, and remove some that 2011-06-17 03:14:27 +00:00
Reassociate Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
ScalarRepl Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
SCCP Land the long talked about "type system rewrite" patch. This 2011-07-09 17:41:24 +00:00
SimplifyCFG more tests not making the jump into the brave new world. 2011-07-09 16:57:10 +00:00
SimplifyLibCalls rip out a ton of intrinsic modernization logic from AutoUpgrade.cpp, which is 2011-06-18 06:05:24 +00:00
Sink Make BasicAliasAnalysis a normal AliasAnalysis implementation which 2010-10-18 18:04:47 +00:00
StripSymbols DIGlobalVariable can be used to encode debug info for globals that are directly folded into a constant by FE. 2010-08-25 18:52:02 +00:00
TailCallElim make the asmparser reject function and type redefinitions. 'Merging' hasn't been 2011-06-17 07:06:44 +00:00
TailDup Move few target-dependant tests to appropriate directories. 2011-05-06 18:24:46 +00:00