Chris Lattner
4415950211
New LLVM pass: argument promotion. This version only handles simple scalar
...
variables.
llvm-svn: 12193
2004-03-07 21:29:54 +00:00
Alkis Evlogimenos
65649a50e9
Add memory operand version of conditional move.
...
llvm-svn: 12190
2004-03-07 03:19:11 +00:00
Alkis Evlogimenos
02e8f14c6a
As I wrote in the docs, simple is the default spiller :-)
...
llvm-svn: 12189
2004-03-06 23:08:44 +00:00
Alkis Evlogimenos
467364b706
Add simple spiller.
...
llvm-svn: 12188
2004-03-06 22:38:29 +00:00
Brian Gaeke
4bb4ec2388
Support return values of basic integer types.
...
Emit RETL instruction to return instead of funny JMPL.
Fix indentation.
llvm-svn: 12186
2004-03-06 05:32:28 +00:00
Brian Gaeke
855518207c
Sort stanzas into Sparc V8 book page number order.
...
Add RET, RETL. Rename SAVE, RESTORE & JMPL for consistency.
llvm-svn: 12185
2004-03-06 05:32:13 +00:00
Brian Gaeke
813f0d8512
Hack it so we do not try to allocate values to G0.
...
llvm-svn: 12184
2004-03-06 05:31:32 +00:00
Brian Gaeke
a265c3c4df
Make prolog align stack properly. Make epilog not touch any registers.
...
llvm-svn: 12183
2004-03-06 05:31:21 +00:00
Brian Gaeke
b4258231ca
Emit register names in lowercase, as required by the assembler.
...
llvm-svn: 12182
2004-03-06 05:30:21 +00:00
Brian Gaeke
13f3e2f254
Teach getRegClassForType where to find FP registers
...
llvm-svn: 12180
2004-03-06 03:54:13 +00:00
Chris Lattner
5a9cae47a4
Fix a minor bug
...
llvm-svn: 12169
2004-03-05 22:04:07 +00:00
Misha Brukman
75729872be
Unbreak the build on Sparc.
...
llvm-svn: 12161
2004-03-05 20:04:40 +00:00
Brian Gaeke
689af03601
Asm output is looking a lot better; not correct for all operands yet though.
...
llvm-svn: 12143
2004-03-05 08:39:09 +00:00
Chris Lattner
f21e7a75d6
Fix a bug in a previous checkin that broke 175.vpr
...
llvm-svn: 12128
2004-03-04 21:36:57 +00:00
Chris Lattner
c885697daa
Add support for strto* and v*printf
...
llvm-svn: 12127
2004-03-04 21:03:54 +00:00
Chris Lattner
48b0fd7101
Add non-crappy support for varargs
...
llvm-svn: 12126
2004-03-04 20:33:47 +00:00
Chris Lattner
ac1eaa43fa
Implement a FIXME, improving the efficiency of DSA on povray.
...
This reduces CBU time from 145s -> 122s (debug build), reduces # allocated nodes
from 129420 to 116477.
llvm-svn: 12125
2004-03-04 19:47:04 +00:00
Brian Gaeke
a24ac9bf8b
Support -print-machineinstrs
...
llvm-svn: 12124
2004-03-04 19:22:16 +00:00
Chris Lattner
e3fc09a37e
Speed up the cbu pass from taking somewhere near the age of the universe to about 90s on povray
...
llvm-svn: 12123
2004-03-04 19:16:35 +00:00
Brian Gaeke
0b913593ae
make -print-machineinstrs work for both SparcV9 and X86
...
llvm-svn: 12122
2004-03-04 19:16:23 +00:00
Alkis Evlogimenos
e8ebdcc780
Add assertion for scale verification.
...
llvm-svn: 12120
2004-03-04 18:05:02 +00:00
Alkis Evlogimenos
d6bb9674d9
Hide variable from other functions.
...
llvm-svn: 12118
2004-03-04 17:50:44 +00:00
Chris Lattner
bc7fc82865
Fix BU datastructures with povray!
...
The problem was that we were merging a field of a node with a value that was
deleted. Thanks to bugpoint for reducing povray to a nice small 3 function
example. :)
llvm-svn: 12116
2004-03-04 17:06:53 +00:00
Chris Lattner
e0c90cf983
Minor changes, remove some debugging code that got checked in somehow.
...
Make sure to scope the NodeMap passed into cloneInto so that it doesn't point
to nodes that are deleted. Add some FIXME's for future performance enhancements.
llvm-svn: 12115
2004-03-04 17:05:28 +00:00
Brian Gaeke
9c6c572f24
Asm printer support, based on x86 - only prints mnemonics for now
...
llvm-svn: 12113
2004-03-04 06:00:41 +00:00
Brian Gaeke
f8440c5a60
Double-FP pseudo-registers.
...
llvm-svn: 12112
2004-03-04 05:15:03 +00:00
Brian Gaeke
b2f869ee43
Subtract instructions; minor cleanups
...
llvm-svn: 12111
2004-03-04 04:37:45 +00:00
Brian Gaeke
0d71671bcf
Floating point regs
...
llvm-svn: 12110
2004-03-04 04:37:22 +00:00
Chris Lattner
790bd9d970
Only clone nodes that are needed in the caller, don't clone ALL aux calls. This improves
...
povray from having ~600K nodes and 300K call nodes to 65K nodes and 25K call nodes.
llvm-svn: 12109
2004-03-04 03:57:53 +00:00
Brian Gaeke
9ebecfdfe0
Simple copyConstantToReg support, SETHIi and ORri
...
llvm-svn: 12107
2004-03-04 00:56:25 +00:00
Brian Gaeke
324c928e36
Support add - note, still missing important copyConstantToRegister stuff
...
llvm-svn: 12106
2004-03-03 23:03:14 +00:00
Chris Lattner
a141de0f09
Fix a minor bug handling incomplete programs
...
llvm-svn: 12105
2004-03-03 23:00:19 +00:00
Chris Lattner
0e1cd00f2c
Fix a DSA bug that caused DSA to generate incredibly huge graphs and take forever to
...
do it on povray. The problem is that we were not copying globals from callees to
callers unless the existed in both graphs. We should have copied them in the case
where the global pointed to a node that was copied as well.
llvm-svn: 12104
2004-03-03 22:01:09 +00:00
Chris Lattner
a6540122dc
Deinline methods, add fast exit
...
llvm-svn: 12102
2004-03-03 20:55:27 +00:00
Brian Gaeke
aa96ff7926
Make MachineOperand's value named 'contents'. Make really, really sure
...
it is always completely initialized and copied.
Also, fix up many comments and asserts.
llvm-svn: 12100
2004-03-03 19:07:27 +00:00
Chris Lattner
309a57f0c0
Fix a node mapping problem that was causing the pool allocator to locally allocate
...
nodes that were globally live, thus breaking programs.
llvm-svn: 12094
2004-03-03 05:34:31 +00:00
Chris Lattner
6978f97701
SPECIFY a target data to initialize the CBE target with. Until now we have
...
been using the default target data layout object to lower malloc instructions,
causing us to allocate more memory than we needed! This could improve the
performance of the CBE generated code substantially!
llvm-svn: 12088
2004-03-03 02:14:15 +00:00
Chris Lattner
8f80c299f2
Add a new constructor
...
llvm-svn: 12087
2004-03-03 02:12:47 +00:00
Chris Lattner
2a1d782aee
Don't emit things like malloc(16*1). Allocation instructions are fixed arity now.
...
llvm-svn: 12086
2004-03-03 01:40:53 +00:00
Chris Lattner
ea4242a575
FINALLY be able to get symbolic type names in the globals graph!
...
llvm-svn: 12082
2004-03-02 21:39:43 +00:00
Chris Lattner
833646d6b8
Really, only if reopen
...
llvm-svn: 12080
2004-03-02 20:46:18 +00:00
Misha Brukman
754f11778f
Doxygenify comments.
...
llvm-svn: 12071
2004-03-02 00:22:19 +00:00
Misha Brukman
c58f772803
Implement ExtractCodeRegion()
...
llvm-svn: 12070
2004-03-02 00:20:57 +00:00
Misha Brukman
8a60e317f0
Make a note that this is usually used via bugpoint.
...
llvm-svn: 12068
2004-03-02 00:19:09 +00:00
Misha Brukman
491ff34abf
Doxygenify some comments.
...
llvm-svn: 12064
2004-03-01 23:53:11 +00:00
Alkis Evlogimenos
c4ad8080f7
Add a spiller option to llc. A simple spiller will come soon. When we get CFG in the machine code represenation a global spiller will also be possible. Also document the linear scan register allocator but mark it as experimental for now.
...
llvm-svn: 12062
2004-03-01 23:18:15 +00:00
Alkis Evlogimenos
64e76a0d43
Add the long awaited memory operand folding support for linear scan
...
llvm-svn: 12058
2004-03-01 20:05:10 +00:00
Misha Brukman
d9ed820702
* If a badref has a name, print it out for ease of debugging
...
* Doxygenify (some) comments
llvm-svn: 12057
2004-03-01 19:48:13 +00:00
Chris Lattner
e7c638e989
Correctly add an array marker on a node when appropriate!
...
llvm-svn: 12055
2004-03-01 19:02:54 +00:00
Misha Brukman
f93e6ab769
* Add implementation of ExtractBasicBlock()
...
* Add comments to ExtractLoop()
llvm-svn: 12053
2004-03-01 18:28:34 +00:00