Commit Graph

108 Commits

Author SHA1 Message Date
Chris Lattner
93d82020ef Move loop optimization passes up, add loop unroller
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13030 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-18 05:21:01 +00:00
Chris Lattner
2c7b430bc0 Turn on argument promotion in gccas. This can give us substantially better
code in cases where the file has lots of static functions or anon namespaces.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12361 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-13 21:38:35 +00:00
Chris Lattner
a93d19fff7 Add a new pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11838 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-25 21:35:02 +00:00
Chris Lattner
364d1203e7 Make sure to print a stack trace whenever an error signal is delivered to
the tool.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11633 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-19 20:32:39 +00:00
Chris Lattner
05e4e8a5d2 Now that tailduplication does not bork SSA form, run mem2reg earlier in gccas.
This tremendously improves the code generated by the LLVM optimizer, primarily
by making the inliner more aggressive.  For example, it improves the stepanov
benchmark from 55.56 mega-additions/sec to 98.04 Ma/s.  It also improves the
oopack/iterator benchmark from 338.3MFLOPS/s to 1103.4MFLOPS/s.  Less noteworthy,
it improves oopack/matrix from 573 -> 641 MFLOPS/s.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11053 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-01 07:24:53 +00:00
Chris Lattner
0cccb18c98 Make sure to verify the result before writing out the bytecode file. Not doing
so can cause obscure errors downstream.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10840 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-14 03:39:46 +00:00
Chris Lattner
74295c0164 Add a -disable-opt flag to gccas, so that we can use -Wa,-disable-opt just
like -Wl,-disable-opt


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10647 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-30 03:24:27 +00:00
Chris Lattner
ca6cc6f277 Run tailcall elimination in a more logical place
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10402 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-11 17:50:32 +00:00
Chris Lattner
1dcf7bc6a9 It is now after pldi. This issue has been fixed, so remove the hack
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10306 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-07 01:44:18 +00:00
Chris Lattner
3edb77c07e Revert the previous patch since it causes lots of miscompilations. :( :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10172 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-22 19:07:47 +00:00
Chris Lattner
14b170f5ff Reorder passes a bit. In particular, it makes sense to run globaldce IMMEDIATELY after funcresolve. Also, run the mem2reg pass _early_ so that IPCP and DAE actually do stuff.
Run instcombine and simplify cfg after this to cleanup the intraprocedural messes we create.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10134 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-21 21:44:35 +00:00
Chris Lattner
a8d76d4bde As the comments indicate, this is a temporary, repulsive, hack
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9982 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-13 19:26:54 +00:00
Brian Gaeke
d0fde30ce8 Put all LLVM code into the llvm namespace, as per bug 109.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-11 22:41:34 +00:00
Chris Lattner
eaa35bb794 Turn on the IPCP pass by default. It has passed all of the tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9435 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-23 18:25:57 +00:00
John Criswell
e2fab734ad Added LLVM copyright to Makefiles.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9314 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-20 22:29:16 +00:00
Chris Lattner
1dd27b157b fix file header
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9294 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-20 17:58:43 +00:00
John Criswell
7c0e022c5c Added copyright header to all C++ source files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9291 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-20 17:47:21 +00:00
Chris Lattner
f07c833b4b Unfortunately, it looks like level raise is still needed :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9158 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-16 16:50:34 +00:00
Chris Lattner
dbc23189b1 Give this file a proper header
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9141 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-15 21:49:57 +00:00
Chris Lattner
76a1bf9eb9 The levelraise pass is a broken old piece of crufty code that should be
left on the side of the road without a second thought.

It is preventing forward progress, so for now, we will disable it by default.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9140 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-15 21:48:38 +00:00
Chris Lattner
0cea3ec964 Add a new -disable-inlining option
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9028 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-10 18:18:53 +00:00
Misha Brukman
452fea9972 Fix grammar.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9026 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-10 17:56:49 +00:00
Chris Lattner
75ebab89ff Now that the TCE pass passes all of the tests, add it to GCCAS
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8621 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-20 05:26:22 +00:00
Chris Lattner
f7c7f5abf8 Enable the setjmp/longjmp lowering pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8521 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-15 04:56:44 +00:00
Chris Lattner
b3e8fe4221 scalarrepl now includes mem2reg
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8472 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-11 16:46:10 +00:00
Chris Lattner
473205250d Move the -indvars pass much later to where it is more likely to do good stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8470 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-11 16:34:07 +00:00
Chris Lattner
145b7ddd67 #include is unnecessary
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8316 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-01 20:45:46 +00:00
Chris Lattner
36f18aefe8 Remove the -stopAfterNPasses option, which has been long obsoleted by bugpoint
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8278 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-31 21:47:24 +00:00
Chris Lattner
cf37c23a47 * move the dead-type-eliminate passes to the end, where they are more useful
* add prune-eh and inlining passes
* other minor pass reorganizations


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8277 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-31 21:45:55 +00:00
Chris Lattner
23d5724c61 Completely remove mention of the correlated branch elimination pass. It has
bugs and needs to be reworked anyway.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7692 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-07 21:30:12 +00:00
Misha Brukman
57d708b122 * The possessive third-person singular has no apostrophe (its)
* Grouped header files to fit with the LLVM standard
* Fit code into 80 columns


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7690 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-07 21:23:52 +00:00
Chris Lattner
e643a6cb9a Add tail duplication pass to the pipeline, move the verifier pass to the front
Other minor reorganizations


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6849 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-22 20:11:45 +00:00
Chris Lattner
42ed21b151 Add SRoA pass to gccas
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6442 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-30 19:24:06 +00:00
Chris Lattner
4dc3535e7a Move indvars pass after mem2reg pass where it is more likely to be useful
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6441 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-30 19:23:10 +00:00
Chris Lattner
590607b01c Add an instcombine pass before levelraise
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5980 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-02 18:19:05 +00:00
Chris Lattner
9c3b55ea9f Make sure to create a target data that matches the Module's target properties.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5904 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 19:13:02 +00:00
Chris Lattner
c986392c30 Remove support for "target data" pass ctors
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5900 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 18:36:41 +00:00
Chris Lattner
961f7b4e4f LevelRaise now gets target data from passmanager
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5898 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-24 18:26:03 +00:00
Chris Lattner
a4dd4e2de8 The new CFrontend generates LOTs of basic blocks that just fall through and do
other funky stuff.  Clean it up early.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5889 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-23 20:40:42 +00:00
Chris Lattner
e1c8153d63 Eliminate some compatibility stuff no longer needed :P
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5812 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-18 23:38:09 +00:00
Chris Lattner
8c7b0551f4 Improve compatibility with system AS further by allowing input from stdin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5780 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-16 17:49:18 +00:00
Chris Lattner
2c1d2f21fd * Get rid of using declaration
* Add two compatibility options to work better with new GCC frontend


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5779 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-16 17:41:08 +00:00
Chris Lattner
f2956fcc11 Namespacify command line options
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5778 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-16 17:34:29 +00:00
Chris Lattner
cabda2134e link with static versions of some libs to avoid having to pull in all of ipo/ipa and datastructure at all
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5402 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-22 22:14:04 +00:00
Vikram S. Adve
02a74ccd61 Disable correlated expressions pass until it is reliable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4512 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-03 12:41:50 +00:00
Chris Lattner
52af630b24 Reassociate now works
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4472 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-31 17:13:11 +00:00
Vikram S. Adve
c954161ea7 Added datastructure library to resolve link error.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4279 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-25 21:17:34 +00:00
Chris Lattner
cc377df7f5 * Remove the -stopraise option, which is no longer needed now that we have
the -debug-pass=Arguments option
* Run instcombining BEFORE mem2reg so that getelementptr X, long 0's are
  cleaned up.  This is also important because scalar replacement of aggr.
  will want instcombine to run before it goes as well.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3879 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-22 18:50:22 +00:00
Vikram S. Adve
0a4aa5a026 gcc3.1.1 seems much more selective about what it loads from archives, and
does not link in many passes that are loaded by gcc2.95.3.  So use object
files instead of archives in many more cases.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3803 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-18 02:20:58 +00:00
Chris Lattner
4dd7d3e34d * No longer need to run die after instcombine
* Run new correlated expressions pass
* Simplify the CFG (removing dead blocks, merging blocks, eliminating branches
  on constant booleans, etc) after correlated exprs pass.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3598 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-06 18:41:33 +00:00