Chris Lattner
b6ac976247
Fix a really obvious huge gaping bug, add a comment
...
llvm-svn: 8620
2003-09-20 05:24:00 +00:00
Chris Lattner
0016085602
Expose the TCE pass
...
llvm-svn: 8619
2003-09-20 05:14:13 +00:00
Chris Lattner
2e9014cb1b
New transformation: tail recursion elimination
...
llvm-svn: 8618
2003-09-20 05:03:31 +00:00
Chris Lattner
2da29177ba
Implement InstCombine/and.ll:test(15|16)
...
llvm-svn: 8607
2003-09-19 19:05:02 +00:00
Chris Lattner
ba1cb38c06
pull a large nested conditional out into its own function
...
llvm-svn: 8605
2003-09-19 17:17:26 +00:00
Chris Lattner
dbba189f15
Implement InstCombine/add.ll:test(15|16)
...
llvm-svn: 8604
2003-09-19 15:35:42 +00:00
Chris Lattner
39f398b50d
Fix bug raising allocations whose call sites were invoke instructions.
...
Thanks to brg for tracking down the problem so precisely!
llvm-svn: 8568
2003-09-16 19:42:21 +00:00
Chris Lattner
ec6d7a6df3
This is effectively a complete rewrite of the globaldce algorithm, resulting
...
in it being both shorter and more effective. It no longer depends on the
callgraph, so one FIXME has been fixed.
Additionally, this pass was not able to delete recursive (but dead) functions
if they were pointed to by global variables which were also dead. In fact
this pass had a lot of problems deleting functions which were only pointed
to by dead globals and other stuff.
Fixing this means that the entire EH library should be stripped away now from
programs that don't use sjlj or exceptions.
llvm-svn: 8567
2003-09-16 19:27:31 +00:00
Chris Lattner
40b6621b50
Minor cleanups, give credit, remove code that should not be necessary, and
...
was a "major hack" :)
llvm-svn: 8524
2003-09-15 05:43:05 +00:00
Chris Lattner
6f99eb56c3
Initial checkin of the Setjmp/Longjmp lowering/transformation pass,
...
contributed by the masterful Bill Wendling!
llvm-svn: 8520
2003-09-15 04:56:27 +00:00
Chris Lattner
da3585335b
Ugh, a bug fix needed because of the bug in the CallGraph code
...
llvm-svn: 8519
2003-09-15 04:52:00 +00:00
Chris Lattner
5a6fa29eb3
Fix bug: PruneEH/2003-09-14-ExternalCall.llx
...
llvm-svn: 8516
2003-09-15 02:22:50 +00:00
Chris Lattner
7f89ea75e1
Fix bug: Inline/2003-09-14-InlineValue.ll
...
llvm-svn: 8514
2003-09-15 02:10:16 +00:00
Chris Lattner
099ec07a95
Make sure to cannonicalize loops before running indvar simplify
...
llvm-svn: 8502
2003-09-12 16:45:01 +00:00
Chris Lattner
7fdde92b1f
Do not return success after checking only the FIRST USE of a gep instruction.
...
Instead, check all uses.
This fixes bug: ScalarRepl/2003-09-12-IncorrectPromote.ll
This also fixes the miscompilation of Ptrdist/bc
llvm-svn: 8493
2003-09-12 16:02:12 +00:00
Chris Lattner
9a95f2a944
Minor optimization efficiency improvement:
...
- Run mem2reg promotion first
- Only rerun passes if the previous thing changed something
llvm-svn: 8490
2003-09-12 15:36:03 +00:00
Chris Lattner
cce81be1e1
Simplify code
...
Implement InstCombine/mul.ll:test9
llvm-svn: 8488
2003-09-11 22:24:54 +00:00
Misha Brukman
217ca0bcb9
Apostrophes are only used for possession and quoting.
...
llvm-svn: 8473
2003-09-11 16:58:31 +00:00
Chris Lattner
5d8a12e094
Integrate functionality of the mem2reg pass directly into this pass to make
...
the combination more effective
llvm-svn: 8471
2003-09-11 16:45:55 +00:00
Chris Lattner
bb9d03b9c0
Renamed DominatorTree::Node::getNode() -> getBlock()
...
llvm-svn: 8469
2003-09-11 16:26:13 +00:00
Misha Brukman
9b8d339f6e
Spell `definite' correctly.
...
llvm-svn: 8467
2003-09-11 15:32:37 +00:00
Misha Brukman
250f976eb3
Spell `definitely' correctly.
...
llvm-svn: 8466
2003-09-11 15:31:17 +00:00
Chris Lattner
2158052ac4
Unwind instructions are intrinsically alive, just like returns
...
llvm-svn: 8462
2003-09-10 20:38:14 +00:00
Chris Lattner
10a032abf1
Update for new UnifyFunction... API
...
Remove using decl
llvm-svn: 8458
2003-09-10 20:35:33 +00:00
Chris Lattner
3b30e93e27
Remove #include
...
llvm-svn: 8457
2003-09-10 20:35:21 +00:00
Chris Lattner
f941396cce
Expand the pass to unify all of the unwind blocks as well
...
llvm-svn: 8456
2003-09-10 20:34:51 +00:00
Chris Lattner
216c7b8aed
Fix spell-o's
...
llvm-svn: 8431
2003-09-10 05:29:43 +00:00
Chris Lattner
4e621cd861
Spelling fixes. I think that "cannonical" is ok, but "canonical" appears to
...
be the canonical form for the word
llvm-svn: 8430
2003-09-10 05:24:46 +00:00
Chris Lattner
36257f049e
Fix up file header
...
llvm-svn: 8428
2003-09-10 05:10:34 +00:00
Misha Brukman
4ace48e0ca
Spell `occurrence' correctly.
...
llvm-svn: 8425
2003-09-09 21:54:45 +00:00
Chris Lattner
04ecefe232
Eliminate support for the llvm.unwind intrinisic, using the Unwind instruction instead
...
llvm-svn: 8411
2003-09-08 19:44:26 +00:00
Chris Lattner
caa12cfa75
Should invokify is always true
...
llvm-svn: 8409
2003-09-08 19:00:30 +00:00
Chris Lattner
9c58cf6d03
Add support for the unwind instruction
...
llvm-svn: 8408
2003-09-08 18:54:55 +00:00
Chris Lattner
01a8391236
Do not hoist volatile loads
...
llvm-svn: 8399
2003-09-08 18:17:14 +00:00
Brian Gaeke
6181cac0dc
Correct comments
...
Don't include InstLoops.h
Don't export factory functions for these passes
llvm-svn: 8373
2003-09-05 19:43:19 +00:00
Chris Lattner
f1f7f2c477
Prototype for creator function got moved
...
llvm-svn: 8315
2003-09-01 20:45:33 +00:00
Chris Lattner
ffc2d16f21
Final cleanup: remove dead code
...
llvm-svn: 8291
2003-09-01 18:01:36 +00:00
Chris Lattner
267f20475b
Not only is this a lot smaller, it actually works if there is already a
...
function with the right name in the module.
llvm-svn: 8290
2003-09-01 16:53:46 +00:00
Chris Lattner
5b8addab9b
Dead files
...
llvm-svn: 8289
2003-09-01 16:49:57 +00:00
Chris Lattner
d4a1af7d49
If "These should be used only by the auto-parallelization pass", we might as
...
well put them INTO the auto-par pass.
llvm-svn: 8288
2003-09-01 16:49:38 +00:00
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