Chris Lattner
15eb3c1f39
REALLY fix PR324: don't delete linkonce functions until after the SCC traversal
...
is done, which avoids invalidating iterators in the SCC traversal routines
llvm-svn: 13088
2004-04-20 22:06:53 +00:00
Chris Lattner
e340657a23
Pass the callgraph not the module
...
llvm-svn: 13087
2004-04-20 21:52:26 +00:00
Chris Lattner
522abc00b8
Allow getting the module from a call graph
...
llvm-svn: 13086
2004-04-20 21:52:12 +00:00
Chris Lattner
ce041cae67
Change it to take a callgraph, from which we can get a module
...
llvm-svn: 13085
2004-04-20 21:52:07 +00:00
Chris Lattner
c3714a870c
Add the ability for SCC passes to initialize and finalize themselves
...
llvm-svn: 13084
2004-04-20 21:30:06 +00:00
Chris Lattner
602146eea1
Fix PR325
...
llvm-svn: 13081
2004-04-20 20:26:03 +00:00
Chris Lattner
5a1e3f099f
Fix PR324 and testcase: Inline/2004-04-20-InlineLinkOnce.llx
...
llvm-svn: 13080
2004-04-20 20:20:59 +00:00
Chris Lattner
7e6c6c85b9
New testcase, distilled from PR324
...
llvm-svn: 13079
2004-04-20 20:15:01 +00:00
Brian Gaeke
3727c760ed
Make it legal to ask for the type of a specialreg
...
llvm-svn: 13078
2004-04-20 20:12:57 +00:00
Brian Gaeke
74f0defc33
Add some PRs which were fixed, but not previously mentioned in the rel. notes.
...
llvm-svn: 13077
2004-04-20 18:18:46 +00:00
Chris Lattner
8b841e0e35
Add support for the select instruction
...
llvm-svn: 13076
2004-04-20 16:43:21 +00:00
Brian Gaeke
047739f8d8
Make it legal to request a load or store of %fsr.
...
llvm-svn: 13073
2004-04-19 19:12:12 +00:00
Brian Gaeke
c72f1fa822
Fix typo.
...
llvm-svn: 13072
2004-04-19 19:09:24 +00:00
Brian Gaeke
3dfe9f19ea
Regularize include guards and remove some excess whitespace.
...
llvm-svn: 13071
2004-04-19 18:53:44 +00:00
Brian Gaeke
d7fa9142a3
Tighten up SparcV9FloatCCRegClass::getRegName()'s assertion - if you ask it for
...
the name of %fsr (as the comment in SparcV9RegClassInfo.h used to suggest)
you would walk off the end of the FloatCCRegName array.
llvm-svn: 13070
2004-04-19 18:53:43 +00:00
Brian Gaeke
5bcbc23fc1
Regularize include guards, remove some excess whitespace and fix some comments.
...
Remove the extra %fsr register from SparcV9FloatCCRegClass.
llvm-svn: 13069
2004-04-19 18:53:42 +00:00
Chris Lattner
29f69938e7
Initial checkin of a simple loop unswitching pass. It still needs work,
...
but it's a start, and seems to do it's basic job.
llvm-svn: 13068
2004-04-19 18:07:02 +00:00
Chris Lattner
a4e24e3c64
New testcase
...
llvm-svn: 13067
2004-04-19 18:06:34 +00:00
Chris Lattner
10c5fa0de9
Add accessor for a Loop Unswitching pass
...
llvm-svn: 13066
2004-04-19 06:28:37 +00:00
Chris Lattner
6aa66a1cae
Eliminate a poorly conceived method
...
llvm-svn: 13065
2004-04-19 06:26:46 +00:00
Chris Lattner
710a51d72b
It's not just a printer, it's actually an analysis too
...
llvm-svn: 13064
2004-04-19 03:42:32 +00:00
Misha Brukman
85b8b45f7b
As per Chris, greatly simplify handling of external functions by using the
...
wrapper idea uniformly: we can use Value::replaceAllUsesWith() instead of
special-casing by class of user.
llvm-svn: 13063
2004-04-19 03:36:47 +00:00
Misha Brukman
09bc094bc2
* Remove note about "UNSUPPORTED: " feature that just became supported
...
* Fix usage of <p> tag and some grammar
llvm-svn: 13062
2004-04-19 03:28:39 +00:00
Misha Brukman
eba5545346
* Reorder #includes
...
* Wrap a long line
llvm-svn: 13061
2004-04-19 03:12:35 +00:00
Misha Brukman
e203fe645b
Display sample bugpoint output with the `code' stylesheet class.
...
llvm-svn: 13060
2004-04-19 03:07:29 +00:00
Chris Lattner
c35a86f48b
* Improve file header comment
...
* Remove #include
* Add some methods to update loop/loopinfo
* Stop explicitly holding the loop depth in the Loop class. Instead, just
dynamically calculate it. This makes it easier to update LoopInfo as a
result of transformations.
llvm-svn: 13059
2004-04-19 03:03:19 +00:00
Chris Lattner
69d4611250
Remove code to update loop depths
...
llvm-svn: 13058
2004-04-19 03:02:09 +00:00
Chris Lattner
1849aa8b1f
Add #include
...
llvm-svn: 13057
2004-04-19 03:01:23 +00:00
Misha Brukman
9b353889ae
Add notes about PRs 38 and 290 being fixed.
...
llvm-svn: 13056
2004-04-19 03:01:01 +00:00
Misha Brukman
2d5e64ab31
Wrap (some) lines to 80 cols.
...
llvm-svn: 13055
2004-04-19 02:56:49 +00:00
Misha Brukman
e7ccafce7e
Finally implement rewriting global initializers which use external functions
...
by creating an internal wrapper function with same signature as the external
function, and use it instead of the "real" function.
The wrapper then calls the external function using the same JIT function
resolution API that has been used before for rewriting instructions, since the
wrapper has an explicit call instruction which we can rewrite.
llvm-svn: 13054
2004-04-19 01:12:01 +00:00
Chris Lattner
0ce3a74370
Provide an interface that is more convenient for iterating over the blocks
...
in a loop.
llvm-svn: 13052
2004-04-18 23:37:03 +00:00
Chris Lattner
ab6502f058
Move isLoopInvariant to the Loop class
...
llvm-svn: 13051
2004-04-18 22:46:08 +00:00
Chris Lattner
509116ec78
Add new method
...
llvm-svn: 13050
2004-04-18 22:45:27 +00:00
Chris Lattner
83017d0b1b
Add new method.
...
llvm-svn: 13049
2004-04-18 22:45:16 +00:00
Chris Lattner
5a0ed18724
Correct rewriting of exit blocks after my last patch
...
llvm-svn: 13048
2004-04-18 22:27:10 +00:00
Chris Lattner
06e17bb6f7
Fix computation of exit blocks
...
llvm-svn: 13047
2004-04-18 22:21:41 +00:00
Chris Lattner
8e42c6f409
Loop exit sets are no longer explicitly held, they are dynamically computed on demand.
...
llvm-svn: 13046
2004-04-18 22:15:13 +00:00
Chris Lattner
7174acca00
Change the ExitBlocks list from being explicitly contained in the Loop
...
structure to being dynamically computed on demand. This makes updating
loop information MUCH easier.
llvm-svn: 13045
2004-04-18 22:14:10 +00:00
Chris Lattner
5fbdaafc18
Spiff is no longer in our tree
...
llvm-svn: 13041
2004-04-18 18:26:38 +00:00
Chris Lattner
13140766df
Reduce the unrolling limit
...
llvm-svn: 13040
2004-04-18 18:06:14 +00:00
Chris Lattner
430968ac2f
If the preheader of the loop was the entry block of the function, make sure
...
that the exit block of the loop becomes the new entry block of the function.
This was causing a verifier assertion on 252.eon.
llvm-svn: 13039
2004-04-18 17:38:42 +00:00
Chris Lattner
199b58db3f
Be much more careful about how we update instructions outside of the loop
...
using instructions inside of the loop. This should fix the MishaTest failure
from last night.
llvm-svn: 13038
2004-04-18 17:32:39 +00:00
Chris Lattner
c6aded531b
Another testcase
...
llvm-svn: 13037
2004-04-18 06:55:57 +00:00
Chris Lattner
08232425a0
Implement method
...
llvm-svn: 13036
2004-04-18 06:54:48 +00:00
Chris Lattner
b17c6d4732
Add a new method
...
llvm-svn: 13035
2004-04-18 06:54:34 +00:00
Chris Lattner
33ec7f2f9f
After unrolling our single basic block loop, fold it into the preheader and exit
...
block. The primary motivation for doing this is that we can now unroll nested loops.
This makes a pretty big difference in some cases. For example, in 183.equake,
we are now beating the native compiler with the CBE, and we are a lot closer
with LLC.
I'm now going to play around a bit with the unroll factor and see what effect
it really has.
llvm-svn: 13034
2004-04-18 06:27:43 +00:00
Chris Lattner
f2045a8c05
Fix a bug: this does not preserve the CFG!
...
While we're at it, add support for updating loop information correctly.
llvm-svn: 13033
2004-04-18 05:38:37 +00:00
Chris Lattner
6606b526f6
Add a new method, add a check missing that caused a segfault if a loop didn't
...
have a canonical indvar
llvm-svn: 13032
2004-04-18 05:38:05 +00:00
Chris Lattner
a8ec64511a
Allow clients to delete loops, add a new method
...
llvm-svn: 13031
2004-04-18 05:37:42 +00:00