Brian Gaeke [Wed, 10 Mar 2004 19:08:52 +0000 (19:08 +0000)]
Recommend using install-bytecode target
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12270
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 10 Mar 2004 17:38:28 +0000 (17:38 +0000)]
My fix for PR274 broke the build on Darwin/PPC. As I'm fairly certain this
bug only affects Linux systems that use GLIBC, I'm going to put ifdefs around
the array.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12269
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 10 Mar 2004 17:38:01 +0000 (17:38 +0000)]
Add support for 'install-bytecode' target, used for ONLY installing
bytecode-libs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12268
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 10 Mar 2004 17:37:50 +0000 (17:37 +0000)]
Fix up a seriously outdated comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12267
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 10 Mar 2004 03:07:45 +0000 (03:07 +0000)]
New testcase for PR275
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12266
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Mar 2004 22:51:03 +0000 (22:51 +0000)]
New testcase for PR276: llvm-g++ does not mangle method names that match stdlib function names
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12265
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Mar 2004 19:37:06 +0000 (19:37 +0000)]
implement new method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12264
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Mar 2004 19:36:59 +0000 (19:36 +0000)]
new method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12263
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Tue, 9 Mar 2004 08:35:13 +0000 (08:35 +0000)]
Spill explicit physical register defs as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12260
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 9 Mar 2004 07:20:26 +0000 (07:20 +0000)]
Now that I read it again, this part in particular strikes me as kind of
pushy and contentious...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12259
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Tue, 9 Mar 2004 06:10:15 +0000 (06:10 +0000)]
Check if printing of implicit uses is required for all types of shift
instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12258
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 9 Mar 2004 05:43:59 +0000 (05:43 +0000)]
b00g fixed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12257
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 9 Mar 2004 05:22:10 +0000 (05:22 +0000)]
Address PR274 - '[JIT] Programs cannot resolve the fstat function'
by trying to get the compiler to generate an undefined reference for it
and related functions which live in libc_nonshared.a on Linux.
Linkers... sigh.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12256
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 9 Mar 2004 04:49:13 +0000 (04:49 +0000)]
Hmm, who left this sitting around in my tree
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12255
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Tue, 9 Mar 2004 03:37:54 +0000 (03:37 +0000)]
Differentiate between extended precision floats (80-bit) and double precision floats (64-bit)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12254
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Tue, 9 Mar 2004 03:35:34 +0000 (03:35 +0000)]
Use newly added API to emit bytes for instructions that gas misassembles
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12253
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Tue, 9 Mar 2004 03:34:53 +0000 (03:34 +0000)]
Add emitInstruction() API so that we can get the bytes of a simple instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12252
91177308-0d34-0410-b5e6-
96231b3b80d8
Alkis Evlogimenos [Tue, 9 Mar 2004 03:30:12 +0000 (03:30 +0000)]
Constify things a bit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12251
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Mar 2004 00:59:15 +0000 (00:59 +0000)]
Bug fixed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12250
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Mar 2004 00:55:58 +0000 (00:55 +0000)]
Checkin testcase for PR261
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12249
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Mar 2004 00:40:49 +0000 (00:40 +0000)]
John fixed this bug
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12248
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Mon, 8 Mar 2004 23:22:03 +0000 (23:22 +0000)]
Change PhyRegAlloc::saveStateForValue()'s arg type to deal with
AllocInfo.Instruction becoming an int.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12247
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Mon, 8 Mar 2004 23:22:02 +0000 (23:22 +0000)]
Save argument list alloc state by recording it as the operands of Instruction
#-1. Other minor changes to deal with AllocInfo.Instruction becoming an int.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12246
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Mon, 8 Mar 2004 23:22:01 +0000 (23:22 +0000)]
Make AllocInfo's Instruction an int, so that we can overload it for arguments.
(Instruction #-1's operands = argument list).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12245
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 8 Mar 2004 23:06:46 +0000 (23:06 +0000)]
Fix some spelling and grammar.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12244
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 22:29:35 +0000 (22:29 +0000)]
Update the profiling section
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12243
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 22:04:08 +0000 (22:04 +0000)]
Switch to using edge profiling information as the basic source of profile info
from using basic block counts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12242
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 22:03:45 +0000 (22:03 +0000)]
Switch over to using edge profile information as the basic profiling representation,
from basic block counts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12241
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 21:30:35 +0000 (21:30 +0000)]
Refactor implementations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12240
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 21:30:18 +0000 (21:30 +0000)]
We don't want to make this a pure interface, as it makes all implementors
bear the burden of implementing what will be all exactly the same methods.
They just want to provide the information in differing ways.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12239
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 21:07:12 +0000 (21:07 +0000)]
Rearrange some methods, implement the dominates method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12237
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 20:57:27 +0000 (20:57 +0000)]
Import the trace class from the reoptimizer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12236
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 20:04:46 +0000 (20:04 +0000)]
Default to using edge counts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12234
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 20:04:32 +0000 (20:04 +0000)]
Annotate functions with edge counts as well, if they are available.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12233
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 20:03:52 +0000 (20:03 +0000)]
If we have edge counts, we can produce block counts. I've verified that
using an edge profile to produce block counts gives the exact same numbers
as using a block count directly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12232
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 18:51:45 +0000 (18:51 +0000)]
Adjust to new interface
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12231
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 18:51:05 +0000 (18:51 +0000)]
Add the ability to put an annotation at the end of a basic block as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12230
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 18:20:18 +0000 (18:20 +0000)]
Add initial support for reading edge counts. This will be improved to enable
translation of edge counts into block/function counts when possible.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12229
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 18:19:37 +0000 (18:19 +0000)]
Add support for representing edge counts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12228
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 18:04:31 +0000 (18:04 +0000)]
Add edge profiling support to the runtime library
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12227
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 8 Mar 2004 17:59:31 +0000 (17:59 +0000)]
Fix link to license: point to current version in CVS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12226
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 17:54:34 +0000 (17:54 +0000)]
Initial support for edge profiling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12225
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 17:06:13 +0000 (17:06 +0000)]
Split utility functions out of BlockProfiling.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12224
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 16:49:10 +0000 (16:49 +0000)]
Remove the comment "Constants must always have an initial value.", which
is incorrect. Fix some formatting nastiness.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12223
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 16:45:53 +0000 (16:45 +0000)]
finegrainify namespacification
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12221
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 16:14:19 +0000 (16:14 +0000)]
Insert functions into the module promptly, not lazily. This fixes a bug
I introduced last night. Note to self: test the *correct* tree...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12220
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 06:17:35 +0000 (06:17 +0000)]
Implement test/Regression/Assembler/2004-03-07-FunctionAddressAlignment.llx
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12218
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 06:17:15 +0000 (06:17 +0000)]
New testcase for folding in some important situations. The first two
come up a lot in the code generated by the C++ front-end for pointers
to member functions. See PR166.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12217
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Mar 2004 06:16:10 +0000 (06:16 +0000)]
Remove Module::mutateConstantPointerRef, which is now thankfully dead!
This is one small step towards the complete obliteration of
ConstantPointerRef's entirely!! Woot!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12216
91177308-0d34-0410-b5e6-
96231b3b80d8
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