Commit Graph

3100 Commits

Author SHA1 Message Date
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