20610 Commits

Author SHA1 Message Date
Chris Lattner
685dc1ea98 Moved all of the cilkifier stuff into lib/Transforms/IPO, as it really is not
support stuff.

llvm-svn: 8287
2003-09-01 16:45:30 +00:00
Chris Lattner
6c6ba71cea Minor cleanups
Do not #include Parallelize.h, it's just a subset of Cilkifier.h

llvm-svn: 8285
2003-09-01 16:42:16 +00:00
Chris Lattner
8ef1b88aef Change the RaiseAllocations pass to be a Pass instead of a BasicBlock pass.
This makes it more efficient: it doesn't have to scan the whole program, so
it performs work proportional to the number of malloc/free calls in the
program, not the size of the program.

llvm-svn: 8280
2003-09-01 03:14:56 +00:00
Chris Lattner
1c884e18e1 Fix bug: TailDuplicate/2003-08-31-UnreachableBlocks.ll
llvm-svn: 8276
2003-08-31 21:17:44 +00:00
Chris Lattner
d075cc282b Heavily refactor code:
* Separate the policy decisions into a derived class [InlineSimple]
  * Move the inlining mechanics into a base class [Inliner]
  * Change the inliner to be an SCCPass, making it more structured and
    eventually pipelinable with other SCC passes

llvm-svn: 8257
2003-08-31 19:10:30 +00:00
Chris Lattner
75444c751f Add accessor function
llvm-svn: 8253
2003-08-31 16:30:07 +00:00
Chris Lattner
0a3f8d5dcd Initial checkin of the -prune-eh pass, a very simple exception handling removal pass
llvm-svn: 8250
2003-08-31 02:47:32 +00:00
Chris Lattner
c817458b66 ScalarRepl does not modify the CFG. Say so!
llvm-svn: 8243
2003-08-31 00:45:13 +00:00
Chris Lattner
2887328770 Use new interface, simplifies code
llvm-svn: 8242
2003-08-31 00:22:27 +00:00
Chris Lattner
25bc3f86de Use the new interface, simplifies code
NOTE that these two files are _BUGGY_ and need to be fixed, just not by me  :)

llvm-svn: 8241
2003-08-31 00:21:59 +00:00
Chris Lattner
ea27751e4b Use the new interface, simplifies code
Delete a bunch of commented out code

llvm-svn: 8240
2003-08-31 00:21:05 +00:00
Chris Lattner
8e6ac1bf10 Use the new interface, simplifies code
llvm-svn: 8239
2003-08-31 00:20:36 +00:00
Chris Lattner
66cc0141b0 Fix bug where we considered function types equivalent even if they had differing numbers of arguments
llvm-svn: 8178
2003-08-28 16:42:50 +00:00
Chris Lattner
df741d62de Fix bug: SCCP/2003-08-26-InvokeHandling.ll
llvm-svn: 8152
2003-08-27 01:08:35 +00:00
Chris Lattner
be8d6816d0 Remove special casing
llvm-svn: 8144
2003-08-25 22:34:15 +00:00
Chris Lattner
4f05103ad2 Fix bug: Linker/2003-08-23-GlobalVarLinking.ll
llvm-svn: 8130
2003-08-24 19:30:20 +00:00
Chris Lattner
3ba0f88a0a Implement: Linker/2003-08-24-InheritPtrSize.ll
llvm-svn: 8129
2003-08-24 19:26:42 +00:00
Chris Lattner
3f5823f131 Implement SimplifyCFG/InvokeEliminate.ll
llvm-svn: 8126
2003-08-24 18:36:16 +00:00
Chris Lattner
0f98032fd8 rethrow is really the language independent primitive here. "throw" can be written
in terms of it and llvm.exc.setcurrent.
Rework the intrinsics.

llvm-svn: 8111
2003-08-24 12:24:11 +00:00
Chris Lattner
d367d0553e Inline invoke instructions as well as call instructions
llvm-svn: 8107
2003-08-24 06:59:28 +00:00
Chris Lattner
0cc265e6bf *** Implement inlining of Invoke instructions!
llvm-svn: 8106
2003-08-24 06:59:16 +00:00
Chris Lattner
9c5bfd0f80 Big diff for a small change: delete inlined functions if all callees have
inlined the function.
Implements: Inline/inline_dce.ll

llvm-svn: 8101
2003-08-24 05:03:14 +00:00
Chris Lattner
fc3fe5cd75 Implement: Inline/cfg_preserve_test.ll
llvm-svn: 8099
2003-08-24 04:06:56 +00:00
Chris Lattner
c54d608377 Implement SimplifyCFG/2003-08-17-FoldSwitch.ll:test5
llvm-svn: 8093
2003-08-23 23:18:19 +00:00
Chris Lattner
f1b1c5ec2f Fix bug: LowerSwitch/2003-08-23-EmptySwitch.ll
llvm-svn: 8087
2003-08-23 22:54:34 +00:00
Chris Lattner
02da0ef418 Do not consider any types that exist in the global symbol table!
llvm-svn: 8084
2003-08-23 21:32:24 +00:00
Chris Lattner
f38c0483ba Fix bug: Linker/2003-08-23-RecursiveOpaqueTypeResolve.ll
llvm-svn: 8083
2003-08-23 21:25:54 +00:00
Chris Lattner
31de50ab44 Implement Linker/2003-08-23-GlobalVarLinking.ll, which should fix 176.gcc
llvm-svn: 8080
2003-08-23 20:31:10 +00:00
Chris Lattner
bb4dd7ed34 Fix bug: TailDup/2003-08-23-InvalidatedPointers.ll
llvm-svn: 8078
2003-08-23 20:08:30 +00:00
Chris Lattner
6fc0ee9901 Fix bug: FunctionResolve/2003-08-23-ArgumentWarning.ll
llvm-svn: 8076
2003-08-23 20:03:05 +00:00
Chris Lattner
954a6095d7 Fix typeo
llvm-svn: 8059
2003-08-22 20:16:48 +00:00
Chris Lattner
1a8a45977a The process of linking types can cause their addresses to become invalid. For this reason, we must use TypeHandles!
llvm-svn: 8057
2003-08-22 19:12:55 +00:00
Chris Lattner
f872d41f55 Implement Linker/2003-08-20-OpaqueTypeResolve.ll
Hopefully this will fix the 176.gcc spec test as well.

llvm-svn: 8051
2003-08-22 06:07:12 +00:00
Misha Brukman
be372b91e1 The word dependent' has no a'.
llvm-svn: 8030
2003-08-21 22:14:26 +00:00
Chris Lattner
015d98e940 Unless we CANNOT merge the arguments, do so
llvm-svn: 7999
2003-08-20 23:50:38 +00:00
Chris Lattner
a34c477b05 Fix grammar, add comment
llvm-svn: 7967
2003-08-18 22:54:06 +00:00
Misha Brukman
7eb05a170a Spell `necessary' correctly.
llvm-svn: 7944
2003-08-18 14:43:39 +00:00
Chris Lattner
821deeeffa Implement folding of switch instructions.
Implements SimplifyCFG/2003-08-17-FoldSwitch.ll

llvm-svn: 7923
2003-08-17 20:21:14 +00:00
Chris Lattner
031340a551 Fix bug: SimplifyCFG/2003-08-17-BranchFoldOrdering.ll
llvm-svn: 7921
2003-08-17 19:41:53 +00:00
Chris Lattner
4b7e3364c7 The fixme is irrelevant: if that happens, the LLVM bytecode is malformed.
This fixes testcase: SimplifyCFG/2003-08-17-BranchFold.ll

llvm-svn: 7919
2003-08-17 19:34:55 +00:00
Brian Gaeke
8c14ba96ca Factory methods for function passes now return type FunctionPass *.
llvm-svn: 7839
2003-08-14 06:09:32 +00:00
Chris Lattner
cbf0839a03 Fix FIXME by removing FIXME
llvm-svn: 7832
2003-08-13 22:15:04 +00:00
Chris Lattner
3ac7c26a1c Implement instcombine optimizations:
(A <setcc1> B) logicalop (A <setcc2> B)  -> (A <setcc3> B) or true or false

Where setcc[123] is one of the 6 setcc instructions, and logicalop is one of: And, Or, Xor

llvm-svn: 7828
2003-08-13 20:16:26 +00:00
Chris Lattner
b8b97505ba Generalize some of the add tests to allow for reassociation to take place
llvm-svn: 7825
2003-08-13 19:01:45 +00:00
Brian Gaeke
89207943a1 Factory methods for FunctionPasses now return type FunctionPass *.
llvm-svn: 7823
2003-08-13 18:18:15 +00:00
Chris Lattner
8ac196dd3b Assign arguments different ranks so they get grouped together
llvm-svn: 7813
2003-08-13 16:16:26 +00:00
John Criswell
35364c8408 Removing the pool allocator from the main CVS tree.
Use the poolalloc module in CVS from now on.

llvm-svn: 7810
2003-08-13 15:36:15 +00:00
Chris Lattner
d07283a2ad Implement InstCombine/2003-08-12-AllocaNonNull.ll
llvm-svn: 7807
2003-08-13 05:38:46 +00:00
Chris Lattner
c992add9fe Do not cannonicalize (X != 0) into (cast X to bool)
llvm-svn: 7806
2003-08-13 05:33:12 +00:00
Chris Lattner
ede3fe05c5 Change cannonicalization rules: add X,X is represented as multiplies, multiplies
of a power of two are represented as a shift.

llvm-svn: 7803
2003-08-13 04:18:28 +00:00