Chris Lattner [Mon, 8 Mar 2004 06:15:33 +0000 (06:15 +0000)]
Remove Module::mutateConstantPointerRef, which is now thankfully dead!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12215
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 06:11:10 +0000 (06:11 +0000)]
Eliminate nightmarish API
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12214
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 06:10:32 +0000 (06:10 +0000)]
remove *THANKFULLY* dead method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12213
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 06:09:57 +0000 (06:09 +0000)]
Eliminate a REALLY HORRIBLE API: mutateReferences, which is gross gross gross.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12212
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 05:35:12 +0000 (05:35 +0000)]
New testcase for PR269
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12211
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 04:55:45 +0000 (04:55 +0000)]
Bug fixed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12210
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 04:41:32 +0000 (04:41 +0000)]
Testcase that crashes the C front-end.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12209
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 03:52:24 +0000 (03:52 +0000)]
Fix a bug handling globals that are constants, but are still external
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12208
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 03:48:07 +0000 (03:48 +0000)]
Avoid allocating special registers a bit more robustly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12207
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 02:12:36 +0000 (02:12 +0000)]
New code-quality testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12205
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 01:58:35 +0000 (01:58 +0000)]
Implement folding explicit load instructions into binary operations. For a
testcase like this:
int %test(int* %P, int %A) {
%Pv = load int* %P
%B = add int %A, %Pv
ret int %B
}
We now generate:
test:
mov %ECX, DWORD PTR [%ESP + 4]
mov %EAX, DWORD PTR [%ESP + 8]
add %EAX, DWORD PTR [%ECX]
ret
Instead of:
test:
mov %EAX, DWORD PTR [%ESP + 4]
mov %ECX, DWORD PTR [%ESP + 8]
mov %EAX, DWORD PTR [%EAX]
add %EAX, %ECX
ret
... saving one instruction, and often a register. Note that there are a lot
of other instructions that could use this, but they aren't handled. I'm not
really interested in adding them, but mul/div and all of the FP instructions
could be supported as well if someone wanted to add them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12204
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 01:18:36 +0000 (01:18 +0000)]
Rearrange and refactor some code. No functionality changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12203
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 01:04:36 +0000 (01:04 +0000)]
Implement ArgumentPromotion/aggregate-promote.ll
This allows pointers to aggregate objects, whose elements are only read, to
be promoted and passed in by element instead of by reference. This can
enable a LOT of subsequent optimizations in the caller function.
It's worth pointing out that this stuff happens a LOT of C++ programs, because
objects in templates are generally passed around by reference. When these
templates are instantiated on small aggregate or scalar types, however, it is
more efficient to pass them in by value than by reference.
This transformation triggers most on C++ codes (e.g. 334 times on eon), but
does happen on C codes as well. For example, on mesa it triggers 72 times,
and on gcc it triggers 35 times. this is amazingly good considering that
we are using 'basicaa' so far.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12202
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 00:58:19 +0000 (00:58 +0000)]
New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12201
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 7 Mar 2004 22:52:53 +0000 (22:52 +0000)]
Implement: ArgumentPromotion/chained.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12200
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 7 Mar 2004 22:52:41 +0000 (22:52 +0000)]
New testcase for missed case
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12199
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 7 Mar 2004 22:43:27 +0000 (22:43 +0000)]
Fix another minor bug, exposed by perlbmk
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12198
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 7 Mar 2004 22:16:24 +0000 (22:16 +0000)]
Since 'load null' is undefined, we can make it do whatever we want. Returning
a zero value is the most likely way to cause further simplification, so we do it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12197
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 7 Mar 2004 22:12:40 +0000 (22:12 +0000)]
Run the new pass in gccld now that it passes all tests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12196
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 7 Mar 2004 21:54:50 +0000 (21:54 +0000)]
Fix a minor bug and turn debug output into, well, debug output.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12195
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 7 Mar 2004 21:30:08 +0000 (21:30 +0000)]
Add prototype
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12194
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 7 Mar 2004 21:29:54 +0000 (21:29 +0000)]
New LLVM pass: argument promotion. This version only handles simple scalar
variables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12193
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 7 Mar 2004 21:28:54 +0000 (21:28 +0000)]
New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12192
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Sun, 7 Mar 2004 03:19:11 +0000 (03:19 +0000)]
Add memory operand version of conditional move.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12190
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Sat, 6 Mar 2004 23:08:44 +0000 (23:08 +0000)]
As I wrote in the docs, simple is the default spiller :-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12189
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Sat, 6 Mar 2004 22:38:29 +0000 (22:38 +0000)]
Add simple spiller.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12188
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Sat, 6 Mar 2004 22:27:41 +0000 (22:27 +0000)]
The default register allocator is local not simple.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12187
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Sat, 6 Mar 2004 05:32:28 +0000 (05:32 +0000)]
Support return values of basic integer types.
Emit RETL instruction to return instead of funny JMPL.
Fix indentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12186
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Sat, 6 Mar 2004 05:32:13 +0000 (05:32 +0000)]
Sort stanzas into Sparc V8 book page number order.
Add RET, RETL. Rename SAVE, RESTORE & JMPL for consistency.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12185
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Sat, 6 Mar 2004 05:31:32 +0000 (05:31 +0000)]
Hack it so we do not try to allocate values to G0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12184
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Sat, 6 Mar 2004 05:31:21 +0000 (05:31 +0000)]
Make prolog align stack properly. Make epilog not touch any registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12183
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Sat, 6 Mar 2004 05:30:21 +0000 (05:30 +0000)]
Emit register names in lowercase, as required by the assembler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12182
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Sat, 6 Mar 2004 03:54:13 +0000 (03:54 +0000)]
Teach getRegClassForType where to find FP registers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12180
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 5 Mar 2004 22:04:07 +0000 (22:04 +0000)]
Fix a minor bug
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12169
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Fri, 5 Mar 2004 20:04:40 +0000 (20:04 +0000)]
Unbreak the build on Sparc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12161
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Fri, 5 Mar 2004 08:39:09 +0000 (08:39 +0000)]
Asm output is looking a lot better; not correct for all operands yet though.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12143
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 4 Mar 2004 21:36:57 +0000 (21:36 +0000)]
Fix a bug in a previous checkin that broke 175.vpr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12128
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 4 Mar 2004 21:03:54 +0000 (21:03 +0000)]
Add support for strto* and v*printf
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12127
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 4 Mar 2004 20:33:47 +0000 (20:33 +0000)]
Add non-crappy support for varargs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12126
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 4 Mar 2004 19:47:04 +0000 (19:47 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12125
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 4 Mar 2004 19:22:16 +0000 (19:22 +0000)]
Support -print-machineinstrs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12124
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 4 Mar 2004 19:16:35 +0000 (19:16 +0000)]
Speed up the cbu pass from taking somewhere near the age of the universe to about 90s on povray
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12123
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 4 Mar 2004 19:16:23 +0000 (19:16 +0000)]
make -print-machineinstrs work for both SparcV9 and X86
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12122
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Thu, 4 Mar 2004 18:05:02 +0000 (18:05 +0000)]
Add assertion for scale verification.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12120
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Thu, 4 Mar 2004 18:02:07 +0000 (18:02 +0000)]
Fix bug introduced by yesterday's changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12119
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Thu, 4 Mar 2004 17:50:44 +0000 (17:50 +0000)]
Hide variable from other functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12118
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 4 Mar 2004 17:06:53 +0000 (17:06 +0000)]
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. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12116
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 4 Mar 2004 17:05:28 +0000 (17:05 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12115
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 4 Mar 2004 06:00:41 +0000 (06:00 +0000)]
Asm printer support, based on x86 - only prints mnemonics for now
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12113
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 4 Mar 2004 05:15:03 +0000 (05:15 +0000)]
Double-FP pseudo-registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12112
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 4 Mar 2004 04:37:45 +0000 (04:37 +0000)]
Subtract instructions; minor cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12111
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 4 Mar 2004 04:37:22 +0000 (04:37 +0000)]
Floating point regs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12110
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 4 Mar 2004 03:57:53 +0000 (03:57 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12109
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Thu, 4 Mar 2004 00:56:25 +0000 (00:56 +0000)]
Simple copyConstantToReg support, SETHIi and ORri
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12107
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 3 Mar 2004 23:03:14 +0000 (23:03 +0000)]
Support add - note, still missing important copyConstantToRegister stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12106
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 3 Mar 2004 23:00:19 +0000 (23:00 +0000)]
Fix a minor bug handling incomplete programs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12105
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 3 Mar 2004 22:01:09 +0000 (22:01 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12104
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 3 Mar 2004 22:00:20 +0000 (22:00 +0000)]
Rename method, add new method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12103
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 3 Mar 2004 20:55:27 +0000 (20:55 +0000)]
Deinline methods, add fast exit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12102
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 3 Mar 2004 20:55:15 +0000 (20:55 +0000)]
De-inline methods
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12101
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 3 Mar 2004 19:07:27 +0000 (19:07 +0000)]
Make MachineOperand's value named 'contents'. Make really, really sure
it is always completely initialized and copied.
Also, fix up many comments and asserts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12100
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 3 Mar 2004 17:38:51 +0000 (17:38 +0000)]
Squash /usr/dcs path; use a 'require <version>' instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12099
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 3 Mar 2004 08:14:25 +0000 (08:14 +0000)]
Add my regression finding by binary searching cvs script.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12095
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 3 Mar 2004 05:34:31 +0000 (05:34 +0000)]
Fix a node mapping problem that was causing the pool allocator to locally allocate
nodes that were globally live, thus breaking programs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12094
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 3 Mar 2004 02:14:15 +0000 (02:14 +0000)]
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!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12088
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 3 Mar 2004 02:12:47 +0000 (02:12 +0000)]
Add a new constructor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12087
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 3 Mar 2004 01:40:53 +0000 (01:40 +0000)]
Don't emit things like malloc(16*1). Allocation instructions are fixed arity now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12086
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Mar 2004 21:39:43 +0000 (21:39 +0000)]
FINALLY be able to get symbolic type names in the globals graph!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12082
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 2 Mar 2004 20:46:18 +0000 (20:46 +0000)]
Really, only if reopen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12080
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Tue, 2 Mar 2004 15:54:25 +0000 (15:54 +0000)]
Added EH support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12075
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Tue, 2 Mar 2004 03:36:10 +0000 (03:36 +0000)]
Make <di> into <dt> (definition list term).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12072
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 2 Mar 2004 00:22:19 +0000 (00:22 +0000)]
Doxygenify comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12071
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 2 Mar 2004 00:20:57 +0000 (00:20 +0000)]
Implement ExtractCodeRegion()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12070
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 2 Mar 2004 00:20:32 +0000 (00:20 +0000)]
Add prototype for ExtractCodeRegion()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12069
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 2 Mar 2004 00:19:09 +0000 (00:19 +0000)]
Make a note that this is usually used via bugpoint.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12068
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 1 Mar 2004 23:53:11 +0000 (23:53 +0000)]
Doxygenify some comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12064
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Mon, 1 Mar 2004 23:25:38 +0000 (23:25 +0000)]
Fix <p> missing <p> tag
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12063
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Mon, 1 Mar 2004 23:18:15 +0000 (23:18 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12062
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Mon, 1 Mar 2004 20:05:10 +0000 (20:05 +0000)]
Add the long awaited memory operand folding support for linear scan
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12058
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 1 Mar 2004 19:48:13 +0000 (19:48 +0000)]
* If a badref has a name, print it out for ease of debugging
* Doxygenify (some) comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12057
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Mar 2004 19:36:50 +0000 (19:36 +0000)]
Add new method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12056
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Mar 2004 19:02:54 +0000 (19:02 +0000)]
Correctly add an array marker on a node when appropriate!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12055
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 1 Mar 2004 18:31:19 +0000 (18:31 +0000)]
Fix grammar and doxygenify comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12054
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 1 Mar 2004 18:28:34 +0000 (18:28 +0000)]
* Add implementation of ExtractBasicBlock()
* Add comments to ExtractLoop()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12053
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 1 Mar 2004 18:27:13 +0000 (18:27 +0000)]
Add ability to extract a single basic block into a new function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12052
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 1 Mar 2004 18:21:04 +0000 (18:21 +0000)]
* HTML 4.01 Strict compliance
* Removed unnecessary tabs in the entire file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12051
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 1 Mar 2004 17:47:27 +0000 (17:47 +0000)]
HTML 4.01 Strict compliance.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12050
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Mar 2004 15:28:27 +0000 (15:28 +0000)]
Add this back, as its absence introduces assertions, and it seems to work now
that Instructions are annotable again
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12045
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Mon, 1 Mar 2004 15:05:17 +0000 (15:05 +0000)]
fix bug in previous checkin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12044
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Mon, 1 Mar 2004 06:43:29 +0000 (06:43 +0000)]
TargetCacheInfo has been removed; its only uses were to propagate a constant
(16) into certain areas of the SPARC V9 back-end. I'm fairly sure the US IIIi's
dcache has 32-byte lines, so I'm not sure where the 16 came from. However, in
the interest of not breaking things any more than they already are, I'm going
to leave the constant alone.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12043
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Mon, 1 Mar 2004 02:50:57 +0000 (02:50 +0000)]
Adding new Modulo Scheduling graph files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12031
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Mon, 1 Mar 2004 02:50:01 +0000 (02:50 +0000)]
Removing old graph files with new graph files that I wrote. Updated ModuloScheduling pass, but still in progress.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12030
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Mar 2004 02:44:44 +0000 (02:44 +0000)]
Expand on my note-to-self
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12029
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Mar 2004 02:42:43 +0000 (02:42 +0000)]
Handle passing constant integers to functions much more efficiently. Instead
of generating this code:
mov %EAX, 4
mov DWORD PTR [%ESP], %EAX
mov %AX, 123
movsx %EAX, %AX
mov DWORD PTR [%ESP + 4], %EAX
call Y
we now generate:
mov DWORD PTR [%ESP], 4
mov DWORD PTR [%ESP + 4], 123
call Y
Which hurts the eyes less. :)
Considering that register pressure around call sites is already high (with all
of the callee clobber registers n stuff), this may help a lot.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12028
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Mon, 1 Mar 2004 02:41:22 +0000 (02:41 +0000)]
Don't look in the .libs directories that libtool makes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12027
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Mar 2004 02:34:08 +0000 (02:34 +0000)]
Fix a minor code-quality issue. When passing 8 and 16-bit integer constants
to function calls, we would emit dead code, like this:
int Y(int, short, double);
int X() {
Y(4, 123, 4);
}
--- Old
X:
sub %ESP, 20
mov %EAX, 4
mov DWORD PTR [%ESP], %EAX
*** mov %AX, 123
mov %AX, 123
movsx %EAX, %AX
mov DWORD PTR [%ESP + 4], %EAX
fld QWORD PTR [.CPIX_0]
fstp QWORD PTR [%ESP + 8]
call Y
mov %EAX, 0
# IMPLICIT_USE %EAX %ESP
add %ESP, 20
ret
Now we emit:
X:
sub %ESP, 20
mov %EAX, 4
mov DWORD PTR [%ESP], %EAX
mov %AX, 123
movsx %EAX, %AX
mov DWORD PTR [%ESP + 4], %EAX
fld QWORD PTR [.CPIX_0]
fstp QWORD PTR [%ESP + 8]
call Y
mov %EAX, 0
# IMPLICIT_USE %EAX %ESP
add %ESP, 20
ret
Next up, eliminate the mov AX and movsx entirely!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12026
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Mar 2004 01:42:26 +0000 (01:42 +0000)]
Fix the "partial pool allocator" on em3d and others. The problem is that
DSNodes, unlike other GraphTraits nodes, can have null outgoing edges, and
df_iterator doesn't take this into consideration. As a workaround, the
successor iterator now handles null nodes and 'indicates' that null has
no successors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12025
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Mar 2004 01:25:37 +0000 (01:25 +0000)]
Make Module annotable. Reid has a bunch of code that depends on this, and
we really don't win that much by eliminating this (not many Modules are
allocated), so it's not worth it. When we can, we should revisit this in
the future.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12023
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 1 Mar 2004 01:12:13 +0000 (01:12 +0000)]
Disable tail duplication in a case that breaks on Olden/tsp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12021
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Sun, 29 Feb 2004 23:55:11 +0000 (23:55 +0000)]
Doxygenify comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12015
91177308-0d34-0410-b5e6-
96231b3b80d8